Move calculation of qty_multiplier into wv_helper
This commit is contained in:
parent
7c67a9e004
commit
abcccbd360
@ -9,7 +9,8 @@ from wireviz.wv_helper import awg_equiv, mm2_equiv, tuplelist2tsv, \
|
||||
nested_html_table, flatten2d, index_if_list, html_line_breaks, \
|
||||
graphviz_line_breaks, remove_line_breaks, open_file_read, open_file_write, \
|
||||
html_colorbar, html_image, html_caption, manufacturer_info_field, \
|
||||
component_table_entry
|
||||
component_table_entry, \
|
||||
calculate_qty_multiplier_connector, calculate_qty_multiplier_cable
|
||||
from collections import Counter
|
||||
from typing import List
|
||||
from pathlib import Path
|
||||
@ -107,13 +108,7 @@ class Harness:
|
||||
rows.append(["Additional components"])
|
||||
for extra in connector.additional_components:
|
||||
qty = extra.qty
|
||||
if extra.qty_multiplier:
|
||||
if extra.qty_multiplier == 'pincount':
|
||||
qty *= connector.pincount
|
||||
elif extra.qty_multiplier == 'populated':
|
||||
qty *= sum(connector.visible_pins.values())
|
||||
else:
|
||||
raise ValueError(f'invalid qty multiplier parameter {extra["qty_multiplier"]}')
|
||||
qty *= calculate_qty_multiplier_connector(extra.qty_multiplier, connector)
|
||||
if(self.mini_bom_mode):
|
||||
id = self.get_bom_index(extra.long_name(), extra.unit, extra.manufacturer, extra.mpn, extra.pn)
|
||||
rows.append(html_line_breaks(component_table_entry(f'{id} ({extra.type.capitalize()})', qty, extra.unit)))
|
||||
@ -197,17 +192,7 @@ class Harness:
|
||||
rows.append(["Additional components"])
|
||||
for extra in cable.additional_components:
|
||||
qty = extra.qty
|
||||
if extra.qty_multiplier:
|
||||
if extra.qty_multiplier == 'wirecount':
|
||||
qty *= cable.wirecount
|
||||
elif extra.qty_multiplier == 'terminations':
|
||||
qty *= len(cable.connections)
|
||||
elif extra.qty_multiplier == 'length':
|
||||
qty *= cable.length
|
||||
elif extra.qty_multiplier == 'total_length':
|
||||
qty *= cable.length * cable.wirecount
|
||||
else:
|
||||
raise ValueError(f'invalid qty multiplier parameter {extra["qty_multiplier"]}')
|
||||
qty *= calculate_qty_multiplier_cable(extra.qty_multiplier, cable)
|
||||
if(self.mini_bom_mode):
|
||||
id = self.get_bom_index(extra.long_name(), extra.unit, extra.manufacturer, extra.mpn, extra.pn)
|
||||
rows.append(html_line_breaks(component_table_entry(f'{id} ({extra.type.capitalize()})', qty, extra.unit)))
|
||||
@ -389,13 +374,7 @@ class Harness:
|
||||
|
||||
for part in connector.additional_components:
|
||||
qty = part.qty
|
||||
if part.qty_multiplier:
|
||||
if part.qty_multiplier == 'pincount':
|
||||
qty = connector.pincount
|
||||
elif part.qty_multiplier == 'populated':
|
||||
qty = sum(connector.visible_pins.values())
|
||||
else:
|
||||
raise ValueError(f'invalid qty multiplier parameter {part.qty_multiplier}')
|
||||
qty *= calculate_qty_multiplier_connector(part.qty_multiplier, connector)
|
||||
bom_items.append(
|
||||
{
|
||||
'item': part.long_name(),
|
||||
@ -434,17 +413,7 @@ class Harness:
|
||||
|
||||
for part in cable.additional_components:
|
||||
qty = part.qty
|
||||
if part.qty_multiplier:
|
||||
if part.qty_multiplier == 'wirecount':
|
||||
qty *= cable.wirecount
|
||||
elif part.qty_multiplier == 'terminations':
|
||||
qty *= len(cable.connections)
|
||||
elif part.qty_multiplier == 'length':
|
||||
qty *= cable.length
|
||||
elif part.qty_multiplier == 'total_length':
|
||||
qty *= cable.length * cable.wirecount
|
||||
else:
|
||||
raise ValueError(f'invalid qty multiplier parameter {part.qty_multiplier}')
|
||||
qty *= calculate_qty_multiplier_cable(part.qty_multiplier, cable)
|
||||
bom_items.append(
|
||||
{
|
||||
'item': part.long_name(),
|
||||
|
||||
@ -198,5 +198,32 @@ def component_table_entry(type, qty, unit=None, pn=None, manufacturer=None, mpn=
|
||||
if manufacturer_str:
|
||||
output += manufacturer_str
|
||||
# format the above output as left aligned text in a single visable cell
|
||||
output = f'<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr><td align="left" balign="left">{output}</td></tr></table>'
|
||||
return output
|
||||
return f'<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr><td align="left" balign="left">{output}</td></tr></table>'
|
||||
|
||||
|
||||
def calculate_qty_multiplier_connector(qty_multiplier, connector):
|
||||
if not qty_multiplier:
|
||||
return 1
|
||||
|
||||
if qty_multiplier == 'pincount':
|
||||
return connector.pincount
|
||||
elif qty_multiplier == 'populated':
|
||||
return sum(connector.visible_pins.values())
|
||||
else:
|
||||
raise ValueError(f'invalid qty multiplier parameter for connector {qty_multiplier}')
|
||||
|
||||
|
||||
def calculate_qty_multiplier_cable(qty_multiplier, cable):
|
||||
if not qty_multiplier:
|
||||
return 1
|
||||
|
||||
if qty_multiplier == 'wirecount':
|
||||
return cable.wirecount
|
||||
elif qty_multiplier == 'terminations':
|
||||
return len(cable.connections)
|
||||
elif qty_multiplier == 'length':
|
||||
return cable.length
|
||||
elif qty_multiplier == 'total_length':
|
||||
return cable.length * cable.wirecount
|
||||
else:
|
||||
raise ValueError(f'invalid qty multiplier parameter for cable {qty_multiplier}')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user