11 Commits

Author SHA1 Message Date
254be36948 Fix SVG MIME type for embedded images (port of upstream PR #443)
SVG images embedded in connector/cable nodes failed to display because
the MIME type was image/svg instead of image/svg+xml per W3C spec.
2026-02-13 03:50:58 -07:00
5e2634e7b8 Fix package_data for gvpr and empty BOM crash
Some checks are pending
Create Examples / build (ubuntu-latest, 3.9) (push) Waiting to run
Create Examples / build (ubuntu-22.04, 3.7) (push) Waiting to run
Create Examples / build (ubuntu-22.04, 3.8) (push) Waiting to run
Create Examples / build (ubuntu-latest, 3.10) (push) Waiting to run
Create Examples / build (ubuntu-latest, 3.11) (push) Waiting to run
Create Examples / build (ubuntu-latest, 3.12) (push) Waiting to run
- Include *.gvpr files in package_data so wv_gvpr.gvpr ships
  in the wheel distribution (reported by web-ui integration agent)
- Guard generate_html_output() against empty BOM list to prevent
  IndexError when YAML has no connectors/cables
2026-02-13 01:00:07 -07:00
Daniel Rojas
fe7f4a3329 Apply black 2025-03-01 19:41:28 +01:00
Daniel Rojas
8f0dbe9e7f Add TODOs about utf-8 encoding/charset (#395)
Co-authored-by: kvid <kvid@users.noreply.github.com>
2025-03-01 19:41:28 +01:00
Daniel Rojas
9fbce3bbf7 Avoid ResourceWarning: unclosed file (#395)
A number of such warnings showed up when running e.g.
PYTHONWARNINGS=always python build_examples.py
PYTHONWARNINGS=always wireviz ../../examples/demo0?.yml
See https://github.com/wireviz/WireViz/pull/309#issuecomment-2170988381

Fix: All open() calls should be in a "with open() as x" statement
to ensure closing the file when exiting the block in any way.
Otherwise, use the new file_read_text() or file_write_text() functions
to read or write the whole utf-8 text file and closing it.

Co-authored-by: kvid <kvid@users.noreply.github.com>
2025-03-01 19:41:28 +01:00
Daniel Rojas
f5c00fa31c Rename "sheetsize_default" to <!-- %template_sheetsize% --> (#380)
Fixes #377 (makes HTML output template placeholders more consistent)

Co-authored-by: kvid <kvid@users.noreply.github.com>
2025-03-01 19:41:28 +01:00
Daniel Rojas
b06c75bf2f Rename diagram_png_base64 to diagram_png_b64 (#371)
Co-authored-by: kvid <kvid@users.noreply.github.com>
2025-03-01 19:41:28 +01:00
Daniel Rojas
812c4aa572 Avoid reading diagram file to embed unless used (#371)
Add local replacement_if_used() that call function to read the file
only when needed and append the return value as replacement.

Co-authored-by: kvid <kvid@users.noreply.github.com>
2025-03-01 19:41:27 +01:00
Daniel Rojas
6c30d0c40a Add HTML template placeholder for diagram_png_base64 (#371)
This will enable users to replace the SVG diagram with an embedded PNG,
that is an improved work-around when the SVG output from Graphviz
is not looking good. Suggested as work-around for Graphviz bug in
https://github.com/wireviz/WireViz/issues/175#issuecomment-2132206026

Co-authored-by: kvid <kvid@users.noreply.github.com>
2025-03-01 19:41:27 +01:00
Daniel Rojas
287c47a65e Add HTML template placeholders for filename (#371)
This will e.g. enable users to replace the SVG diagram with PNG,
that is needed as a work-around when the SVG output from Graphviz
is not looking good. Suggested as work-around for Graphviz bug in
https://github.com/wireviz/WireViz/issues/175#issuecomment-2132206026

Co-authored-by: kvid <kvid@users.noreply.github.com>
2025-03-01 19:41:27 +01:00
Daniel Rojas
c33a19708c Refactor code (squashed commit)
Refactor connector node generation

Further refactor connector node generation

Rebuild demos

Generate gauge string inside Cable object

WIP: refactor cable node generation

Implement HTML indentation

WIP

More WIP

Remove old stuff, slightly simplify code

Outsource `gv_pin_table()`, simplify padding

Add TODOs

Outsource `set_dot_basics()` and `apply_dot_tweaks()`

Make setting HTML tag attributes easier through `kwargs`

Fix and simplify bgcolor logic

Reactivate cable edge generation

Outsource `gv_edge_wire()`

Make connecting things more object-oriented

Alphabetize HTML tags, improve bgcolor rendering

Make mates object-oriented

Run `autoflake -i`

Run `autoflake -i --remove-all-unused-imports`

Streamline assignment of ports to simple connectors

Implement color objects

Use color objects in WireViz

Re-sort `wv_colors.py`

Make green color darker

Break longer lines not caught by `black`

because they were unbroken strings or comments

Make variable name more expressive

Apply dot tweaks last

Remove unused line

Improve subclassing of components, prepare for BOM refactoring

Clean up

Include nested additional components in BOM

do not add autogenerated designators to BOM

Improve BOM generation (TODO: wires from a bundle)

Prepare `harness.populate_bom()`

Change `description` to `type` in additional BOM item YAML

Define CLI epilog str in single statement

Rename modules, adjust imports, move `build_examples.py`

Restructure and update `.gitignore`

Clarify `wireviz.parse()` input types

Implement BOM population (missing: qty multipliers)

Make `pin_objects` and `wire_objects` dictionaries

Compute qty's of additional components (WIP)

Add qty test file

Adapt `tutorial08.yml` (remove `unit` field)

Add `tabulate` to dependency list (might remove later if not needed)

Sort BOM by category, assign BOM IDs

Rename `Options.color_mode` to `.color_output_mod` for consistency

Change BOM output file extension from `.bom.tsv` to `.tsv`

Implement BOM bubbles

Stop recursive nesting of additional components

Add BOM bubble to additional component list (WIP)

Fix gauge conversion

Fix line breaks in code

Optimize BOM bubble geometry

Implement pin color output

Small issue: GraphViz warning
```
Warning: table size too small for content
```

Add some test files to `tests/` directory

Update test files

Allow multiple colors for components

Implement multiple colors for components, improve multicolor table rendering

Fix color cell implementation

Fix node background color rendering

Add test file for node and title bgcolors

WIP: BOM modes

Add TODO for empty connector pin tables

Comment out BOM modes (WIP) and BOM bubbles

Resume work on BOM

Include part number info in BOM table

Fix BOM output in TSV and HTML

Add bundles' wires' part number info to BOM

Add TODOs

Implement bundle part number rendering

Improve conductor table rendering

Fix additional component BOM table layout

Disable CLI BOM output

Add suggestions from #246

Add suggestions from #186

Add .vscode/ to .gitignore

Fix PyLance problems

Update interim version number

Fix zero-size cell for simple connectors without type

Implement additional parameters dict for components

Implement note for additional components

Thicken additional component table

Add placeholder for add.comp. PN info

Apply black
2025-03-01 19:41:27 +01:00