22 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
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
KV
e73e189131 Update setup.py with all tested python versions (#442) 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
Daniel Rojas
2f737c2371 Prepare for refactoring (squashed commit)
no diff should ocurr as a result of the refactoring

Add `metadata.title` to `demo01.yml`

to avoid diffs later when calling via CLI

Add temporary loop to `demo01`

for debugging purposes

Add `cleanup.sh` (maybe move/delete later? or add commit hook?)

Deprecate Python 3.7, add Python 3.10

Add `devtools.txt`

Add `pyan` to `devtools.txt`

Add sample use to `devtools.txt`
2025-03-01 19:41:27 +01:00
KV
a89d04d8ca 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.
2024-07-05 18:16:34 +02:00
Liam Beguin
4d9346a365 Add jinja2 preprocessor stage
Some checks failed
Create Examples / build (3.7) (push) Has been cancelled
Create Examples / build (3.8) (push) Has been cancelled
This allows users to leverage jinja to include other files but also
loops, conditions, and other templating features.

Signed-off-by: Liam Beguin <liambeguin@gmail.com>
2024-06-09 17:53:54 -04:00
Daniel Rojas
f92985a61c Apply black 2021-10-16 22:09:59 +02:00
Daniel Rojas
344615483a Apply isort 2021-10-16 22:09:59 +02:00
Daniel Rojas
b53ce36046 Fix entry point 2021-10-16 22:08:00 +02:00
Daniel Rojas
a810bd53ae Add wv_cli.py, add Click requirement, change entry point 2021-10-16 22:08:00 +02:00
Daniel Rojas
8e59a14e4e Simplify and clean up setup.py 2021-10-16 21:54:56 +02:00
Daniel Rojas
00be4747ad Replace os.path with pathlib.Path where used 2021-10-16 21:54:56 +02:00
Daniel Rojas
3cc36e1573 Harmonize shebangs and encoding info
- Use `#!/usr/bin/env python3` on executable modules
- Remove shebangs on all other `.py` files
- Add UTF-8 encoding info where mising
2021-10-11 20:05:52 +02:00
Daniel Rojas
6db1fcf0fe Improve documentation
- Create `docs/` directory
- Add syntax description (`syntax.md`)
- Track changes since first release (`CHANGELOG.md`)
- Expand contribution guidelines (`CONTRIBUTING.md`)
- Improve main readme (`README.md`)
- Add documentation for build script (`buildscript.md`)
2020-10-16 23:13:56 +02:00
KV
7dcd1a7eeb Define application name and URL only once
The application name and URL was defined several places in the code,
and the name was not written exactly the same everywhere.

By using the same constants everywhere, consistency is obtained.
2020-10-16 22:02:15 +02:00
kvid
4782da47c9
Add optional image to connectors and cables (#153)
This image, with an optional caption below, is displayed in the lower 
section of the connector/cable node in the diagram - just above the 
notes if present.

This solves the basic part of issue #27, and is a continuation of 
PR #137 that was closed due to changes in the base branch.
2020-10-14 16:08:16 +02:00
KV
7df8a4b7cf Add command line options to show version number
Add -V command line option (and --version as an alias) to
both wireviz.py and build_examples.py that show version number.

Move the version number from setup.py into __init__.py to access
the same version number specification from all files needing it.

This solves part 4 of issue #167.
2020-10-11 13:37:34 +02:00
Daniel Rojas
3732597ded Fine-tune multicolor wire PR
- Remove modified background color -> should be discusses as a separate feature
- Render shields as thin tinned wire with black border, safer for b&w priting than single light-gray line
- Remove PE as color definition, since it is not, and should be called with GNYE
- Clean up minor things
2020-07-19 19:03:07 +02:00
Daniel Rojas
c7014a2ea0 Fix URL in setup.py (fixes #42) 2020-06-29 14:22:32 +02:00
Andreas Nordin
5514fd4244 refactor dependencies and installation
There are hard copies of the graphviz and pyyaml dependencies included
in the repo. Remove these.

Sort out installation and dependency handling by writing a functional
setup.py script. Rename top level documentation. Refactor wireviz.py
slightly to allow it to run as an installed script.

# Conflicts:
#	src/batch.py
#	src/wireviz/batch.py
#	src/wireviz/build_examples.py
2020-06-28 10:46:24 +02:00