From 3bedab2301eacb331809557d9774fbbb69b1647a Mon Sep 17 00:00:00 2001 From: jan Date: Sun, 8 Mar 2026 19:58:56 -0700 Subject: [PATCH] [ports2data] Make port label parsing more robust --- masque/utils/ports2data.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/masque/utils/ports2data.py b/masque/utils/ports2data.py index b67fa0a..b97b41e 100644 --- a/masque/utils/ports2data.py +++ b/masque/utils/ports2data.py @@ -160,13 +160,17 @@ def data_to_ports_flat( local_ports = {} for label in labels: - name, property_string = label.string.split(':') - properties = property_string.split(' ') - ptype = properties[0] - angle_deg = float(properties[1]) if len(ptype) else 0 + if ':' not in label.string: + logger.warning(f'Invalid port label "{label.string}" in pattern "{pstr}" (missing ":")') + continue + + 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 - angle = numpy.deg2rad(angle_deg) + angle = numpy.deg2rad(angle_deg) if numpy.isfinite(angle_deg) else None if name in local_ports: logger.warning(f'Duplicate port "{name}" in pattern "{pstr}"')