From 18782444b123735f6b2f57581b0899135996cda9 Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Sun, 17 Oct 2021 13:00:43 +0200 Subject: [PATCH] Make prefix for autogenerated component names configurable `edotor.net` does not seem to like leading underscores, which makes GraphViz debugging difficult. --- src/wireviz/DataClasses.py | 16 ++++++++++++---- src/wireviz/Harness.py | 3 +-- src/wireviz/wireviz.py | 4 ++-- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/wireviz/DataClasses.py b/src/wireviz/DataClasses.py index 74a9dc4..cdefddd 100644 --- a/src/wireviz/DataClasses.py +++ b/src/wireviz/DataClasses.py @@ -42,6 +42,8 @@ MetadataKeys = PlainText # Literal['title', 'description', 'notes', ...] Side = Enum("Side", "LEFT RIGHT") +AUTOGENERATED_PREFIX = "AUTOGENERATED_" + class Metadata(dict): pass @@ -163,6 +165,10 @@ class Connector: ignore_in_bom: bool = False additional_components: List[AdditionalComponent] = field(default_factory=list) + @property + def is_autogenerated(self): + return self.name.startswith(AUTOGENERATED_PREFIX) + def __post_init__(self) -> None: if isinstance(self.image, dict): @@ -196,8 +202,7 @@ class Connector: raise Exception("Pins are not unique") if self.show_name is None: - # hide designators for simple and for auto-generated connectors by default - self.show_name = self.style != "simple" and self.name[0:2] != "__" + self.show_name = self.style != "simple" and not self.is_autogenerated if self.show_pincount is None: # hide pincount for simple (1 pin) connectors by default @@ -269,6 +274,10 @@ class Cable: ignore_in_bom: bool = False additional_components: List[AdditionalComponent] = field(default_factory=list) + @property + def is_autogenerated(self): + return self.name.startswith(AUTOGENERATED_PREFIX) + def __post_init__(self) -> None: if isinstance(self.image, dict): @@ -360,8 +369,7 @@ class Cable: raise Exception("lists of part data are only supported for bundles") if self.show_name is None: - # hide designators for auto-generated cables by default - self.show_name = self.name[0:2] != "__" + self.show_name = not self.is_autogenerated if self.show_wirenumbers is None: # by default, show wire numbers for cables, hide for bundles diff --git a/src/wireviz/Harness.py b/src/wireviz/Harness.py index da4f2bf..d99786f 100644 --- a/src/wireviz/Harness.py +++ b/src/wireviz/Harness.py @@ -17,8 +17,8 @@ from wireviz.DataClasses import ( MatePin, Metadata, Options, - Tweak, Side, + Tweak, ) from wireviz.svgembed import embed_svg_images_file from wireviz.wv_bom import ( @@ -650,7 +650,6 @@ class Harness: graph = self.graph return embed_svg_images(graph.pipe(format="svg").decode("utf-8"), Path.cwd()) - def output( self, filename: (str, Path), diff --git a/src/wireviz/wireviz.py b/src/wireviz/wireviz.py index 163be95..05369ae 100755 --- a/src/wireviz/wireviz.py +++ b/src/wireviz/wireviz.py @@ -10,7 +10,7 @@ import yaml if __name__ == "__main__": sys.path.insert(0, str(Path(__file__).parent.parent)) # add src/wireviz to PATH -from wireviz.DataClasses import Metadata, Options, Tweak +from wireviz.DataClasses import AUTOGENERATED_PREFIX, Metadata, Options, Tweak from wireviz.Harness import Harness from wireviz.wv_helper import ( expand, @@ -164,7 +164,7 @@ def parse( autogenerated_designators[template] = ( autogenerated_designators.get(template, 0) + 1 ) - designator = f"__{template}_{autogenerated_designators[template]}" + designator = f"{AUTOGENERATED_PREFIX}{template}_{autogenerated_designators[template]}" # check if redefining existing component to different template if designator in designators_and_templates: if designators_and_templates[designator] != template: