Avoid generating a container if only a single port is passed
This commit is contained in:
parent
885b259fb7
commit
f834ec6be5
@ -839,7 +839,8 @@ class Device(Copyable, Mirrorable):
|
|||||||
spacing: Optional[Union[float, ArrayLike]] = None,
|
spacing: Optional[Union[float, ArrayLike]] = None,
|
||||||
set_rotation: Optional[float] = None,
|
set_rotation: Optional[float] = None,
|
||||||
tool_port_names: Sequence[str] = ('A', 'B'),
|
tool_port_names: Sequence[str] = ('A', 'B'),
|
||||||
name: str = '_busL',
|
container_name: str = '_busL',
|
||||||
|
force_container: bool = False,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
) -> D:
|
) -> D:
|
||||||
if self._dead:
|
if self._dead:
|
||||||
@ -867,11 +868,15 @@ class Device(Copyable, Mirrorable):
|
|||||||
|
|
||||||
extensions = ell(ports, ccw, spacing=spacing, bound=bound, bound_type=bound_type, set_rotation=set_rotation)
|
extensions = ell(ports, ccw, spacing=spacing, bound=bound, bound_type=bound_type, set_rotation=set_rotation)
|
||||||
|
|
||||||
dev = Device(name='', ports=ports, tools=self.tools).as_interface(name)
|
if len(ports) == 1 and not force_container:
|
||||||
for name, length in extensions.items():
|
# Not a bus, so having a container just adds noise to the layout
|
||||||
dev.path(name, ccw, length, tool_port_names=tool_port_names)
|
port_name = tuple(portspec)[0]
|
||||||
|
return self.path(port_name, ccw, extensions[port_name], tool_port_names=tool_port_names)
|
||||||
return self.plug(dev, {sp: 'in_' + sp for sp in ports.keys()}) # TODO safe to use 'in_'?
|
else:
|
||||||
|
dev = Device(name='', ports=ports, tools=self.tools).as_interface(container_name)
|
||||||
|
for name, length in extensions.items():
|
||||||
|
dev.path(name, ccw, length, tool_port_names=tool_port_names)
|
||||||
|
return self.plug(dev, {sp: 'in_' + sp for sp in ports.keys()}) # TODO safe to use 'in_'?
|
||||||
|
|
||||||
# TODO def path_join() and def bus_join()?
|
# TODO def path_join() and def bus_join()?
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user