[ports2data] Make port label parsing more robust

This commit is contained in:
jan 2026-03-08 19:58:56 -07:00
commit 3bedab2301

View file

@ -160,13 +160,17 @@ def data_to_ports_flat(
local_ports = {} local_ports = {}
for label in labels: for label in labels:
name, property_string = label.string.split(':') if ':' not in label.string:
properties = property_string.split(' ') logger.warning(f'Invalid port label "{label.string}" in pattern "{pstr}" (missing ":")')
ptype = properties[0] continue
angle_deg = float(properties[1]) if len(ptype) else 0
name, property_string = label.string.split(':', 1)
properties = property_string.split()
ptype = properties[0] if len(properties) > 0 else 'unk'
angle_deg = float(properties[1]) if len(properties) > 1 else numpy.inf
xy = label.offset xy = label.offset
angle = numpy.deg2rad(angle_deg) angle = numpy.deg2rad(angle_deg) if numpy.isfinite(angle_deg) else None
if name in local_ports: if name in local_ports:
logger.warning(f'Duplicate port "{name}" in pattern "{pstr}"') logger.warning(f'Duplicate port "{name}" in pattern "{pstr}"')