diff --git a/src/wireviz/DataClasses.py b/src/wireviz/DataClasses.py index e80437b..3941609 100644 --- a/src/wireviz/DataClasses.py +++ b/src/wireviz/DataClasses.py @@ -101,6 +101,8 @@ class AdditionalComponent: subtype: Optional[MultilineHypertext] = None manufacturer: Optional[MultilineHypertext] = None mpn: Optional[MultilineHypertext] = None + supplier: Optional[MultilineHypertext] = None + spn: Optional[MultilineHypertext] = None pn: Optional[Hypertext] = None qty: float = 1 unit: Optional[str] = None @@ -116,6 +118,8 @@ class Connector: name: Designator manufacturer: Optional[MultilineHypertext] = None mpn: Optional[MultilineHypertext] = None + supplier: Optional[MultilineHypertext] = None + spn: Optional[MultilineHypertext] = None pn: Optional[Hypertext] = None style: Optional[str] = None category: Optional[str] = None @@ -198,6 +202,8 @@ class Cable: name: Designator manufacturer: Union[MultilineHypertext, List[MultilineHypertext], None] = None mpn: Union[MultilineHypertext, List[MultilineHypertext], None] = None + supplier: Union[MultilineHypertext, List[MultilineHypertext], None] = None + spn: Union[MultilineHypertext, List[MultilineHypertext], None] = None pn: Union[Hypertext, List[Hypertext], None] = None category: Optional[str] = None type: Optional[MultilineHypertext] = None @@ -288,7 +294,7 @@ class Cable: raise Exception('"s" may not be used as a wire label for a shielded cable.') # if lists of part numbers are provided check this is a bundle and that it matches the wirecount. - for idfield in [self.manufacturer, self.mpn, self.pn]: + for idfield in [self.manufacturer, self.mpn, self.supplier, self.spn, self.pn]: if isinstance(idfield, list): if self.category == "bundle": # check the length diff --git a/src/wireviz/Harness.py b/src/wireviz/Harness.py index 3918050..9de4cdc 100644 --- a/src/wireviz/Harness.py +++ b/src/wireviz/Harness.py @@ -125,7 +125,8 @@ class Harness: rows = [[remove_links(connector.name) if connector.show_name else None], [f'P/N: {remove_links(connector.pn)}' if connector.pn else None, - html_line_breaks(manufacturer_info_field(connector.manufacturer, connector.mpn))], + html_line_breaks(manufacturer_info_field(connector.manufacturer, connector.mpn)), + html_line_breaks(manufacturer_info_field(connector.supplier, connector.spn))], [html_line_breaks(connector.type), html_line_breaks(connector.subtype), f'{connector.pincount}-pin' if connector.show_pincount else None, @@ -210,7 +211,10 @@ class Harness: [f'P/N: {remove_links(cable.pn)}' if (cable.pn and not isinstance(cable.pn, list)) else None, html_line_breaks(manufacturer_info_field( cable.manufacturer if not isinstance(cable.manufacturer, list) else None, - cable.mpn if not isinstance(cable.mpn, list) else None))], + cable.mpn if not isinstance(cable.mpn, list) else None)), + html_line_breaks(manufacturer_info_field( + cable.supplier if not isinstance(cable.supplier, list) else None, + cable.spn if not isinstance(cable.spn, list) else None))], [html_line_breaks(cable.type), f'{cable.wirecount}x' if cable.show_wirecount else None, f'{cable.gauge} {cable.gauge_unit}{awg_fmt}' if cable.gauge else None, @@ -266,8 +270,13 @@ class Harness: manufacturer_info = manufacturer_info_field( cable.manufacturer[i - 1] if isinstance(cable.manufacturer, list) else None, cable.mpn[i - 1] if isinstance(cable.mpn, list) else None) + supplier_info = manufacturer_info_field( + cable.supplier[i - 1] if isinstance(cable.supplier, list) else None, + cable.spn[i - 1] if isinstance(cable.spn, list) else None) if manufacturer_info: wireidentification.append(html_line_breaks(manufacturer_info)) + if supplier_info: + wireidentification.append(html_line_breaks(supplier_info)) # print parameters into a table row under the wire if len(wireidentification) > 0 : wirehtml.append('