587 Commits

Author SHA1 Message Date
5ad38e586e Merge feature/jumpers: native jumper wire support for harness diagrams
Some checks are pending
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
Create Examples / build (ubuntu-latest, 3.9) (push) Waiting to run
Major refactor from upstream PR #455 adding jumper wires as a first-class
component type. Includes renamed modules (DataClasses→wv_dataclasses,
Harness→wv_harness), new color system, and updated BOM generation.

Preserved Jinja2 preprocessor (PR #382) in wv_cli.py alongside jumper changes.
2026-02-13 00:06:17 -07:00
2faaa4dbf7 Merge feature/jinja2-preprocessor: Jinja2 templating for YAML harness definitions
Resolves conflict in wv_cli.py by taking the Jinja2 template rendering
approach, which subsumes plain file reading (upstream PR #382).
2026-02-13 00:00:53 -07:00
Tobias Falk
17407c195f rerun examples
Some checks failed
Create Examples / build (ubuntu-22.04, 3.7) (push) Has been cancelled
Create Examples / build (ubuntu-22.04, 3.8) (push) Has been cancelled
Create Examples / build (ubuntu-latest, 3.10) (push) Has been cancelled
Create Examples / build (ubuntu-latest, 3.11) (push) Has been cancelled
Create Examples / build (ubuntu-latest, 3.12) (push) Has been cancelled
Create Examples / build (ubuntu-latest, 3.9) (push) Has been cancelled
2025-03-12 23:02:46 +01:00
Tobias Falk
8979227a20 fixed harnes.py 2025-03-12 23:01:39 +01:00
Tobias Falk
7ef8a0fc52 Update Jumper code, thanks @SnowMB 2025-03-12 22:56:10 +01:00
Tobias Falk
3e4353e62a Add Jumper code 2025-03-12 22:38:52 +01:00
Tobias Falk
206be6bbed add ex16 2025-03-12 22:15:53 +01:00
Tobias Falk
cfe9590905 Add Readme text and examples 2025-03-12 22:15:35 +01:00
Tobias Falk
203e947293 Add syntax description 2025-03-12 22:01:48 +01:00
Daniel Rojas
01c3771a9c Merge branch 'refactor/big-refactor-squashed' into dev-refactored 2025-03-01 20:45:43 +01:00
Daniel Rojas
b1d02b9d7f Rebuild examples 2025-03-01 20:35:41 +01:00
Daniel Rojas
0683b446f0 Update GitHub workflow 2025-03-01 20:34:21 +01:00
Daniel Rojas
a4581d0834 Bump version to 0.5-dev+refactor 2025-03-01 20:33:49 +01: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
KV
38ca3e2689 Provide more information when raising exception 2025-03-01 19:41:28 +01:00
Martin Rieder
ff6afac510 Update comment in src/wireviz/wireviz.py (#392)
Clarify all exceptions catched, including changes in #392

Co-authored-by: kvid <kvid@users.noreply.github.com>
2025-03-01 19:41:28 +01:00
Martin Rieder
d4902ce87d Catch also ValueError (#392)
In Windows might ValueError be raised instead of the already
catched exceptions in some cases (depending on the Python version)

Fixes point 2 of https://github.com/wireviz/WireViz/pull/318#pullrequestreview-1457016602
2025-03-01 19:41:28 +01:00
Martin Rieder
edc68cf9fb Catch OSError also with errno=None (#392)
In Windows might OSError(errno = None) be raised instead of the already
catched exceptions in some cases (depending on the Python version)

Fixes #391
2025-03-01 19:41:28 +01:00
kvid
018e3de68b Update src/wireviz/wireviz.py (#383)
Raising TypeError is better than assert. (Black reformatted)

Co-authored-by: Andreas Motl <andreas.motl@panodata.org>
2025-03-01 19:41:28 +01:00
KV
07555f2386 Explain unexpeced top-level type (#383)
Might help in reported issues like #342
2025-03-01 19:41:28 +01:00
Daniel Rojas
152f97cc7b Add non-empty label to avoid over-sized loops (#381)
Work-around to improve the #286 use case.
- https://github.com/wireviz/WireViz/issues/286#issuecomment-2094309143
- https://stackoverflow.com/questions/70996779/graphviz-edges-between-cells-in-the-same-html-table-are-too-long

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
KV
860844574f Add link from syntax.md to HTML output templates (#371) 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
KV
7420718f10 Add HTML output templates README.md (#371)
Describe the HTML Output Templates, how they are specified,
and placeholder usage within these templates.
2025-03-01 19:41:27 +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
ceaad3c39a Update APP_URL (#364)
The project was moved into the new organization 2023-05-30, but old
URLs are still working due to automatic redirects by GitHub.

https://github.com/wireviz/WireViz/issues/316#issuecomment-1568748914

Co-authored-by: kvid <kvid@users.noreply.github.com>
2025-03-01 19:41:27 +01:00
Daniel Rojas
32a62a6dd7 Use output_name as default title (#361)
The CLI handling code was redesigned for v0.4 and it seems the code
to assign a default title from v0.3.1 has been messed up. This bug
has not been triggered by build_examples.py due to it seems to call
the parse() function differently.

The output_name should be used as default title when present.

This will fix the #360 bug report.

Co-authored-by: kvid <kvid@users.noreply.github.com>
2025-03-01 19:41:27 +01:00
KV
50b190113b Add package_data to to setup() call in setup.py (#347)
Specify all HTML files under templates folder
to be included as package data files.
2025-03-01 19:41:27 +01:00
Daniel Rojas
98e103a0af Handle OSError(errno=EINVAL) that might be raised in Windows (#346)
In Windows might OSError(errno=EINVAL) be raised instead of the already
catched exceptions in some cases (depending on the Python version).

Suggested fix posted by JarrettR in
https://github.com/wireviz/WireViz/issues/344#issuecomment-2113476151

Co-authored-by: kvid <kvid@users.noreply.github.com>
Co-authored-by: JarrettR <jrainier@gmail.com>
2025-03-01 19:41:27 +01:00
KV
e73e189131 Update setup.py with all tested python versions (#442) 2025-03-01 19:41:27 +01:00
KV
7d8999b45e Use ubuntu-latest for the supported Python versions (#442)
Use ubuntu-22.04 only for Python 3.7-3.8
by including them separately into the matrix.
2025-03-01 19:41:27 +01:00
Martin Rieder
abbedc4e24 Update deprecated GitHub Actions and add Python versions (#408)
Running 6 different Python versions (3.7 to 3.12) in parallel now.
NOTE: This is in conflict with #309, but can be resolved easily in a later PR.

GitHub Actions require an update:
- actions/upload-artifact@v3 is scheduled for deprecation on November
30, 2024.
- Similarly, v1/v2 are scheduled for deprecation on June 30, 2024.
- Updating this comes with a breaking change in upload-artifact@v4:

Uploading to the same named Artifact multiple times.

Due to how Artifacts are created in this new version, it is no longer
possible to upload to the same named Artifact multiple times. You must
either split the uploads into multiple Artifacts with different names,
or only upload once. Otherwise you will encounter an error.

The artifact .zip files therefore have the python version added to
their name.
2025-03-01 19:41:27 +01:00
Daniel Rojas
fb8c6e94c9 Add documentation on template separator character 2025-03-01 19:41:27 +01:00
Daniel Rojas
2400193435 Add check for outdated connector attributes
Co-authored-by: kvid <kvid@users.noreply.github.com>
2025-03-01 19:41:27 +01:00
Daniel Rojas
701815874c Remove references for unsupported output formats
Remove the references in the CLI help, but keep the placeholders elsewhere in the code as a TODO
2025-03-01 19:41:27 +01:00
Daniel Rojas
0fed30aa05 Apply suggestions from code review
Co-authored-by: kvid <kvid@users.noreply.github.com>
2025-03-01 19:41:27 +01:00
Daniel Rojas
9d1700c4a0 Improve gracefulness when invoking wireviz.parse() without file_out
This happened to be a regression for WireViz-Web [1], which aims to do
as much in memory as possible.

[1] https://github.com/daq-tools/wireviz-web.

kvid rebased and mixed original commit with similar change by Daniel Rojas

Co-authored-by: Andreas Motl <andreas.motl@panodata.org>
Co-authored-by: kvid <kvid@users.noreply.github.com>
2025-03-01 19:41:27 +01:00
Daniel Rojas
7077543600 Adjust tutorial08.yml 2025-03-01 19:41:27 +01:00
Daniel Rojas
fee05a71fc Do not allow negative qty_multiplier
Co-authored-by: kvid <kvid@users.noreply.github.com>
2025-03-01 19:41:27 +01:00
Daniel Rojas
e756d62e50 Add unpopulated option to additional components qty multiplier
Co-authored-by: Jeremy Ruhland (hatchery) <jeremy@goopypanther.org>

squash me
2025-03-01 19:41:27 +01:00
Daniel Rojas
c376c491d4 Update syntax description 2025-03-01 19:41:27 +01:00
Daniel Rojas
d8c6230b85 Add warning about unconnected components 2025-03-01 19:41:27 +01:00
Daniel Rojas
a7e667e9b7 Update changelog
Use version from v0.4.1 master branch.
Fix missing link to v0.4.1 (L8) so it's not forgotten.
2025-03-01 19:41:27 +01:00
Daniel Rojas
400c242c90 Move parse_number_and_unit() and NumberAndUnit definition to wv_utils.py
Remove unused attribute

Remove unused `&&` in GitHub workflow

Remove duplicate `category` attribute

Removed from `Connector` class since it is already defined in the `Component` superclass.

Remove unnecessary casting of `int` to `float`

https://github.com/wireviz/WireViz/pull/251#discussion_r1359000766

Continue work on BOM handling (WIP)
2025-03-01 19:41:27 +01:00
KV
6f6235ad25 Split out class AdditionalBomItem from AdditionalComponent
https://github.com/wireviz/WireViz/pull/251#discussion_r1359055105

No output changed for any examples/tutorial/tests input.
2025-03-01 19:41:27 +01:00