generalize MPN/SPN string generation

rename `manufacturer_info_field()` to `pn_info_string()` and add parameter to specify MPN or SPN
This commit is contained in:
Daniel Rojas 2021-08-27 18:52:36 +02:00
parent 0c1e7293dc
commit 6e59163cca
2 changed files with 13 additions and 13 deletions

View File

@ -14,7 +14,7 @@ from wireviz.DataClasses import Metadata, Options, Connector, Cable
from wireviz.wv_colors import get_color_hex, translate_color from wireviz.wv_colors import get_color_hex, translate_color
from wireviz.wv_gv_html import nested_html_table, html_colorbar, html_image, \ from wireviz.wv_gv_html import nested_html_table, html_colorbar, html_image, \
html_caption, remove_links, html_line_breaks html_caption, remove_links, html_line_breaks
from wireviz.wv_bom import manufacturer_info_field, component_table_entry, \ from wireviz.wv_bom import pn_info_string, component_table_entry, \
get_additional_component_table, bom_list, generate_bom get_additional_component_table, bom_list, generate_bom
from wireviz.wv_html import generate_html_output from wireviz.wv_html import generate_html_output
from wireviz.wv_helper import awg_equiv, mm2_equiv, tuplelist2tsv, flatten2d, \ from wireviz.wv_helper import awg_equiv, mm2_equiv, tuplelist2tsv, flatten2d, \
@ -125,8 +125,8 @@ class Harness:
rows = [[remove_links(connector.name) if connector.show_name else None], rows = [[remove_links(connector.name) if connector.show_name else None],
[f'P/N: {remove_links(connector.pn)}' if connector.pn 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(pn_info_string("mpn", connector.manufacturer, connector.mpn)),
html_line_breaks(manufacturer_info_field(connector.supplier, connector.spn))], html_line_breaks(pn_info_string("spn", connector.supplier, connector.spn))],
[html_line_breaks(connector.type), [html_line_breaks(connector.type),
html_line_breaks(connector.subtype), html_line_breaks(connector.subtype),
f'{connector.pincount}-pin' if connector.show_pincount else None, f'{connector.pincount}-pin' if connector.show_pincount else None,
@ -209,10 +209,10 @@ class Harness:
rows = [[remove_links(cable.name) if cable.show_name else None], rows = [[remove_links(cable.name) if cable.show_name else None],
[f'P/N: {remove_links(cable.pn)}' if (cable.pn and not isinstance(cable.pn, list)) else None, [f'P/N: {remove_links(cable.pn)}' if (cable.pn and not isinstance(cable.pn, list)) else None,
html_line_breaks(manufacturer_info_field( html_line_breaks(pn_info_string("mpn",
cable.manufacturer if not isinstance(cable.manufacturer, list) else None, 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( html_line_breaks(pn_info_string("spn",
cable.supplier if not isinstance(cable.supplier, list) else None, cable.supplier if not isinstance(cable.supplier, list) else None,
cable.spn if not isinstance(cable.spn, list) else None))], cable.spn if not isinstance(cable.spn, list) else None))],
[html_line_breaks(cable.type), [html_line_breaks(cable.type),
@ -267,10 +267,10 @@ class Harness:
wireidentification = [] wireidentification = []
if isinstance(cable.pn, list): if isinstance(cable.pn, list):
wireidentification.append(f'P/N: {remove_links(cable.pn[i - 1])}') wireidentification.append(f'P/N: {remove_links(cable.pn[i - 1])}')
manufacturer_info = manufacturer_info_field( manufacturer_info = pn_info_string("mpn",
cable.manufacturer[i - 1] if isinstance(cable.manufacturer, list) else None, cable.manufacturer[i - 1] if isinstance(cable.manufacturer, list) else None,
cable.mpn[i - 1] if isinstance(cable.mpn, list) else None) cable.mpn[i - 1] if isinstance(cable.mpn, list) else None)
supplier_info = manufacturer_info_field( supplier_info = pn_info_string("spn",
cable.supplier[i - 1] if isinstance(cable.supplier, list) else None, cable.supplier[i - 1] if isinstance(cable.supplier, list) else None,
cable.spn[i - 1] if isinstance(cable.spn, list) else None) cable.spn[i - 1] if isinstance(cable.spn, list) else None)
if manufacturer_info: if manufacturer_info:

View File

@ -161,8 +161,8 @@ def component_table_entry(
spn: Optional[str] = None, spn: Optional[str] = None,
) -> str: ) -> str:
"""Return a diagram node table row string with an additional component.""" """Return a diagram node table row string with an additional component."""
manufacturer_str = manufacturer_info_field(manufacturer, mpn) manufacturer_str = pn_info_string("mpn", manufacturer, mpn)
supplier_str = manufacturer_info_field(supplier, spn) supplier_str = pn_info_string("spn", supplier, spn)
part_number_list = [pn, manufacturer_str, supplier_str] part_number_list = [pn, manufacturer_str, supplier_str]
output = (f'{qty}' output = (f'{qty}'
+ (f' {unit}' if unit else '') + (f' {unit}' if unit else '')
@ -175,10 +175,10 @@ def component_table_entry(
<td align="left" balign="left">{html_line_breaks(output)}</td> <td align="left" balign="left">{html_line_breaks(output)}</td>
</tr></table>''' </tr></table>'''
def manufacturer_info_field(manufacturer: Optional[str], mpn: Optional[str]) -> Optional[str]: def pn_info_string(nametype: str, name: Optional[str], number: Optional[str]) -> Optional[str]:
"""Return the manufacturer and/or the mpn in one single string or None otherwise.""" """Return the company name and/or the part number in one single string or None otherwise."""
if manufacturer or mpn: if name or number:
return f'{manufacturer if manufacturer else "MPN"}{": " + str(mpn) if mpn else ""}' return f'{name if name else nametype.upper()}{": " + str(number) if number else ""}'
else: else:
return None return None