From 306f0b4c83573813c6aa5068ae62ce2fdb00d5b1 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Sun, 12 Jul 2026 15:18:00 -0700 Subject: [PATCH] [Pather] handle empty or duplicate port lists --- masque/builder/pather.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/masque/builder/pather.py b/masque/builder/pather.py index cbf87f4..877cd6d 100644 --- a/masque/builder/pather.py +++ b/masque/builder/pather.py @@ -159,6 +159,16 @@ class Pather(PortList): def _route_contexts(self, portspecs: Sequence[str]) -> tuple[RoutePortContext, ...]: """Snapshot several ports in request order for bundle planning.""" + if not portspecs: + raise BuildError('Routing requires at least one port') + seen: set[str] = set() + duplicates: set[str] = set() + for portspec in portspecs: + if portspec in seen: + duplicates.add(portspec) + seen.add(portspec) + if duplicates: + raise BuildError(f'Routing port names must be unique; got duplicates: {sorted(duplicates)}') return tuple(self._route_context(portspec) for portspec in portspecs) @property