diff --git a/masque/builder/pather_mixin.py b/masque/builder/pather_mixin.py index 0afd132..1655329 100644 --- a/masque/builder/pather_mixin.py +++ b/masque/builder/pather_mixin.py @@ -533,8 +533,6 @@ class PortPather: if len(self.ports) > 1: raise BuildError(f'Unable use implicit path_into() with {len(self.ports)} (>1) ports.') self.pather.path_into(self.ports[0], *args, **kwargs) - if thru is not None: - self.rename_from(thru) return self def path_from(self, *args, **kwargs) -> Self: @@ -612,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')