diff --git a/masque/builder/pather_mixin.py b/masque/builder/pather_mixin.py index 94ccae3..1655329 100644 --- a/masque/builder/pather_mixin.py +++ b/masque/builder/pather_mixin.py @@ -610,6 +610,14 @@ class PortPather: self.ports = [mm for mm in [name_map.get(pp, pp) for pp in self.ports] if mm is not None] return self + def add_ports(self, ports: Iterable[str]) -> Self: + ports = list(ports) + conflicts = set(ports) & set(self.ports) + if conflicts: + raise BuildError(f'ports {conflicts} already selected') + self.ports += ports + return self + def add_port(self, port: str, index: int | None = None) -> Self: if port in self.ports: raise BuildError(f'{port=} already selected')