[Pather] handle empty or duplicate port lists
This commit is contained in:
parent
fe4e2f760b
commit
306f0b4c83
1 changed files with 10 additions and 0 deletions
|
|
@ -159,6 +159,16 @@ class Pather(PortList):
|
||||||
|
|
||||||
def _route_contexts(self, portspecs: Sequence[str]) -> tuple[RoutePortContext, ...]:
|
def _route_contexts(self, portspecs: Sequence[str]) -> tuple[RoutePortContext, ...]:
|
||||||
"""Snapshot several ports in request order for bundle planning."""
|
"""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)
|
return tuple(self._route_context(portspec) for portspec in portspecs)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue