Rename .href to .url as suggested in review

This commit is contained in:
KV 2020-11-08 00:57:55 +01:00
parent ab077bce67
commit 4ee928684d
4 changed files with 22 additions and 22 deletions

View File

@ -2,14 +2,14 @@ templates: # defining templates to be used later on
- &molex_f
type: Molex KK 254
subtype: female
href: "https://www.molex.com/molex/products/family/kk_254_rpc_connector_system"
url: "https://www.molex.com/molex/products/family/kk_254_rpc_connector_system"
- &con_i2c
pinlabels: [GND, +5V, SCL, SDA]
- &wire_i2c
category: bundle
gauge: 0.14 mm2
colors: [BK, RD, YE, GN]
href: [a, b, c, d]
url: [bk.html, rd.html, ye.html, gn.html]
connectors:
X1:
@ -80,4 +80,4 @@ additional_bom_items:
manufacturer: generic company
mpn: Label1
pn: Label-ID-1
href: "https://www.bradyid.com/wire-cable-labels/bmp71-bmp61-m611-tls-2200-nylon-cloth-wire-general-id-labels-cps-2958789"
url: "https://www.bradyid.com/wire-cable-labels/bmp71-bmp61-m611-tls-2200-nylon-cloth-wire-general-id-labels-cps-2958789"

View File

@ -73,7 +73,7 @@ class AdditionalComponent:
manufacturer: Optional[MultilineHypertext] = None
mpn: Optional[MultilineHypertext] = None
pn: Optional[Hypertext] = None
href: Optional[PlainText] = None
url: Optional[PlainText] = None
qty: float = 1
unit: Optional[str] = None
qty_multiplier: Union[ConnectorMultiplier, CableMultiplier, None] = None
@ -89,7 +89,7 @@ class Connector:
manufacturer: Optional[MultilineHypertext] = None
mpn: Optional[MultilineHypertext] = None
pn: Optional[Hypertext] = None
href: Optional[PlainText] = None
url: Optional[PlainText] = None
style: Optional[str] = None
category: Optional[str] = None
type: Optional[MultilineHypertext] = None
@ -172,7 +172,7 @@ class Cable:
manufacturer: Union[MultilineHypertext, List[MultilineHypertext], None] = None
mpn: Union[MultilineHypertext, List[MultilineHypertext], None] = None
pn: Union[Hypertext, List[Hypertext], None] = None
href: Optional[PlainText] = None
url: Optional[PlainText] = None
category: Optional[str] = None
type: Optional[MultilineHypertext] = None
gauge: Optional[float] = None

View File

@ -159,7 +159,7 @@ class Harness:
html = [row.replace('<!-- connector table -->', '\n'.join(pinhtml)) for row in html]
html = '\n'.join(html)
dot.node(connector.name, label=f'<\n{html}\n>', shape='none', href=connector.href,
dot.node(connector.name, label=f'<\n{html}\n>', shape='none', href=connector.url,
margin='0', style='filled', fillcolor='white')
if len(connector.loops) > 0:
@ -290,11 +290,11 @@ class Harness:
for connection in cable.connections:
if isinstance(connection.via_port, int): # check if it's an actual wire and not a shield
dot.attr('edge', color=':'.join(['#000000'] + wv_colors.get_color_hex(cable.colors[connection.via_port - 1], pad=pad) + ['#000000']),
href=index_if_list(cable.href, connection.via_port - 1))
href=index_if_list(cable.url, connection.via_port - 1))
else: # it's a shield connection
# shield is shown with specified color and black borders, or as a thin black wire otherwise
dot.attr('edge', color=':'.join(['#000000', shield_color_hex, '#000000']) if isinstance(cable.shield, str) else '#000000',
href=cable.href if isinstance(cable.href, str) else None)
href=cable.url if isinstance(cable.url, str) else None)
if connection.from_port is not None: # connect to left
from_connector = self.connectors[connection.from_name]
from_port = f':p{connection.from_port}r' if from_connector.style != 'simple' else ''
@ -330,7 +330,7 @@ class Harness:
html = '\n'.join(html)
dot.node(cable.name, label=f'<\n{html}\n>', shape='box',
href=cable.href if isinstance(cable.href, str) else None,
href=cable.url if isinstance(cable.url, str) else None,
style='filled,dashed' if cable.category == 'bundle' else '', margin='0', fillcolor='white')
return dot

View File

@ -15,7 +15,7 @@ def get_additional_component_table(harness, component: Union[Connector, Cable])
for extra in component.additional_components:
qty = extra.qty * component.get_qty_multiplier(extra.qty_multiplier)
if harness.mini_bom_mode:
id = get_bom_index(harness, extra.description, extra.unit, extra.manufacturer, extra.mpn, extra.pn, extra.href)
id = get_bom_index(harness, extra.description, extra.unit, extra.manufacturer, extra.mpn, extra.pn, extra.url)
rows.append(component_table_entry(f'#{id} ({extra.type.rstrip()})', qty, extra.unit))
else:
rows.append(component_table_entry(extra.description, qty, extra.unit, extra.pn, extra.manufacturer, extra.mpn))
@ -33,7 +33,7 @@ def get_additional_component_bom(component: Union[Connector, Cable]) -> List[dic
'mpn': part.mpn,
'pn': part.pn,
'designators': component.name if component.show_name else None,
'href': part.href,
'url': part.url,
})
return(bom_entries)
@ -50,7 +50,7 @@ def generate_bom(harness):
+ (f', {connector.color}' if connector.color else ''))
bom_entries.append({
'item': description, 'qty': 1, 'unit': None, 'designators': connector.name if connector.show_name else None,
'manufacturer': connector.manufacturer, 'mpn': connector.mpn, 'pn': connector.pn, 'href': connector.href,
'manufacturer': connector.manufacturer, 'mpn': connector.mpn, 'pn': connector.pn, 'url': connector.url,
})
# add connectors aditional components to bom
@ -70,7 +70,7 @@ def generate_bom(harness):
bom_entries.append({
'item': description, 'qty': cable.length, 'unit': cable.length_unit, 'designators': cable.name if cable.show_name else None,
'manufacturer': cable.manufacturer, 'mpn': cable.mpn, 'pn': cable.pn,
'href': cable.href if isinstance(cable.href, str) else None,
'url': cable.url if isinstance(cable.url, str) else None,
})
else:
# add each wire from the bundle to the bom
@ -83,7 +83,7 @@ def generate_bom(harness):
'item': description, 'qty': cable.length, 'unit': cable.length_unit, 'designators': cable.name if cable.show_name else None,
'manufacturer': index_if_list(cable.manufacturer, index),
'mpn': index_if_list(cable.mpn, index), 'pn': index_if_list(cable.pn, index),
'href': index_if_list(cable.href, index),
'url': index_if_list(cable.url, index),
})
# add cable/bundles aditional components to bom
@ -92,7 +92,7 @@ def generate_bom(harness):
for item in harness.additional_bom_items:
bom_entries.append({
'item': item.get('description', ''), 'qty': item.get('qty', 1), 'unit': item.get('unit'), 'designators': item.get('designators'),
'manufacturer': item.get('manufacturer'), 'mpn': item.get('mpn'), 'pn': item.get('pn'), 'href': item.get('href'),
'manufacturer': item.get('manufacturer'), 'mpn': item.get('mpn'), 'pn': item.get('pn'), 'url': item.get('url'),
})
# remove line breaks if present and cleanup any resulting whitespace issues
@ -100,7 +100,7 @@ def generate_bom(harness):
# deduplicate bom
bom = []
bom_types_group = lambda bt: (bt['item'], bt['unit'], bt['manufacturer'], bt['mpn'], bt['pn'], bt['href'])
bom_types_group = lambda bt: (bt['item'], bt['unit'], bt['manufacturer'], bt['mpn'], bt['pn'], bt['url'])
for group in Counter([bom_types_group(v) for v in bom_entries]):
group_entries = [v for v in bom_entries if bom_types_group(v) == group]
designators = []
@ -121,17 +121,17 @@ def generate_bom(harness):
bom = [{**entry, 'id': index} for index, entry in enumerate(bom, 1)]
return bom
def get_bom_index(harness, item, unit, manufacturer, mpn, pn, href):
def get_bom_index(harness, item, unit, manufacturer, mpn, pn, url):
# Remove linebreaks and clean whitespace of values in search
target = tuple(clean_whitespace(v) for v in (item, unit, manufacturer, mpn, pn, href))
target = tuple(clean_whitespace(v) for v in (item, unit, manufacturer, mpn, pn, url))
for entry in harness.bom():
if (entry['item'], entry['unit'], entry['manufacturer'], entry['mpn'], entry['pn'], entry['href']) == target:
if (entry['item'], entry['unit'], entry['manufacturer'], entry['mpn'], entry['pn'], entry['url']) == target:
return entry['id']
return None
def bom_list(bom):
keys = ['id', 'item', 'qty', 'unit', 'designators'] # these BOM columns will always be included
for fieldname in ['pn', 'manufacturer', 'mpn', 'href']: # these optional BOM columns will only be included if at least one BOM item actually uses them
for fieldname in ['pn', 'manufacturer', 'mpn', 'url']: # these optional BOM columns will only be included if at least one BOM item actually uses them
if any(entry.get(fieldname) for entry in bom):
keys.append(fieldname)
bom_list = []
@ -139,7 +139,7 @@ def bom_list(bom):
bom_headings = {
"pn": "P/N",
"mpn": "MPN",
"href": "URL",
"url": "URL",
}
bom_list.append([(bom_headings[k] if k in bom_headings else k.capitalize()) for k in keys]) # create header row with keys
for item in bom: