Skip to content

Commit 6585061

Browse files
committed
Support single device manager name in CLI
1 parent 0b1f632 commit 6585061

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

src/dodal/cli.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ def main(ctx: click.Context) -> None:
4545
"attempt any I/O. Useful as a a dry-run.",
4646
default=False,
4747
)
48-
@click.option("-n", "--name", multiple=True)
49-
def connect(beamline: str, all: bool, sim_backend: bool, name: tuple[str, ...]) -> None:
48+
@click.option("-n", "--name")
49+
def connect(beamline: str, all: bool, sim_backend: bool, name: str | None) -> None:
5050
"""Initialises a beamline module, connects to all devices, reports
5151
any connection issues."""
5252

@@ -71,15 +71,16 @@ def connect(beamline: str, all: bool, sim_backend: bool, name: tuple[str, ...])
7171
# be lazy.
7272

7373
if name:
74-
for manager_name in name:
75-
if (manager := getattr(mod, manager_name, None)) and isinstance(
76-
manager, DeviceManager
77-
):
78-
devices, instance_exceptions, connect_exceptions = (
79-
manager.build_and_connect(
80-
mock=sim_backend,
81-
)
74+
if (manager := getattr(mod, name, None)) and isinstance(manager, DeviceManager):
75+
devices, instance_exceptions, connect_exceptions = (
76+
manager.build_and_connect(
77+
mock=sim_backend,
8278
)
79+
)
80+
else:
81+
raise ValueError(
82+
f"Name '{name}' could not be found or is not a DeviceManager"
83+
)
8384
else:
8485
_spoof_path_provider()
8586
devices, instance_exceptions = make_all_devices(

0 commit comments

Comments
 (0)