As the spline shield wires were rendered as tinned wires with
black borders, and the shield wires in cable nodes were rendered
as a single (bottom) border, they didn't fit well together.
Each shield wire is now rendered equally along the spline sections
and in cable nodes. If cable.shield is true, they are rendered as
thin black wires in the same way as before multi-colors were
introduced. The new feature is that cable.shield is allowed to
contain a two-letter color code to specify a colored shield wire
with black borders.
The shield wire thickness is not increased, even if the cable has
some multi-colored wires that makes all other wires to increase.
This fixes bug #125.
- Shorten `part_number` to `pn`
- Shorten `manufacturer_part_number` to `mpn`
- Show `manufacturer` and `mpn` in a single cell of the node
- Replace `manufacturer` with `'MPN'`within the node if no manufacturer is specified.
- Rearrange order of P/N fields within node
`{pn} | {manufacturer}: {mpn}`
- 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
* Remove bundle grouping as it is not needed for the wire grouping
Grouping the bundles has no purpose, as the same
wires can be collected by just looping all bundles.
* Allow one common value or list of values for each wire
Allow one common value when they are equal for all wires,
or a list of values to allow each wire a different value.
* Fix the minor issues commented by the owner
The owner review comments can be seen here:
https://github.com/formatc1702/WireViz/pull/62
* Make grouping code more pythonic
Add hack to make manufacturer / part number row have vertical separators, to be visually consistent with connectors.
In the future, connectors will have to be modified to be HTML tables instead of GraphViz record nodes, in order to support colored bands for the connector, or individual pins (#53). When this is implemented, a cleaner solution should be found for both connectors and cables.
Simplify the grouping loop slightly, by moving the filtering out.
The category of bundle entries is allways the same and is therefore
not needed for grouping.
The BOM output is unchanged by this change. It is verified using:
python build_examples.py
git diff ../../{examples,tutorial}/*.tsv
Avoid duplications of BOM entry grouping definitions by moving
each grouping into a single lambda function.
Use the 'group' term in the involved variable names for clarity.
The BOM output is unchanged by this change. It is verified using:
python build_examples.py
git diff ../../{examples,tutorial}/*.tsv
* Fix AWG<-> mm2 conversions
Add an inverted dictionary and a lookup function from awg -> mm2. Also
do some minor refactoring. Both sides of the conversion table were
converted to strings, since '0000' and '2/0' are perfectly valid AWG
values.
* Update example ex02 with awg -> mm2 conversion
Show conversions for ex02, and make sure it displays conversions in both
directions. Rebuild the example files.
* Fix faulty conversion of non-(mm2,AWG) units
The parsing allows arbitrary units to be used for cable dimensions --
this might be valid units, e.g. square inches, or invalid, e.g. bananas.
We only allow conversion between mm2 and AWG, so check that the
gauge_unit is either of those before conversion. If not, pass through as
is.
* Fix AWG string casing in output
Convert e.g. 'awg, 'AwG' to upper case for consistent rendering. Leave
any other input gauge units as they were.
Co-authored-by: Daniel Rojas <github@danielrojas.net>
* Format all files using autopep8 to add basic PEP8 conformity.
* Add Exception types to bare excepts to prevent catching `ctrl+c`
* Remove some unnecessary assignment to dummy variables before returning
* Add `Optional` to type hints that can be `NoneType`
* Change a number of single-letter variables to more descriptive names
* Replace string.format() use with Python's f-strings, as they tends to be cleaner, and provide a performance boost.
* One multiline string was left as string.format() as I do not believe f-strings support multiline
* Some of the string.format() instances had unused/ignored arguments. I left them out of the f-strings, but I marked those cases with a comments that begins `# FIXME:`
* Rename variables that were shadowding python standard functions (specifically `format->fmt`, `input->inp`, `type->maintype`)
* Some instances of `type` were not changed, as it breaks the yaml parsing. Needs to be looked into.
* Move classes in `wireviz.py` to two new files `DataClasses.py` and `Harness.py`.
Co-authored-by: Daniel Rojas <github@danielrojas.net>