Skip to content

Commit f3a92b8

Browse files
committed
Replace Controller.get_sub_controllers with Controller.sub_controllers property
1 parent 3300dd1 commit f3a92b8

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

src/fastcs/control_system.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ def _build_controller_api(controller: BaseController, path: list[str]) -> Contro
200200
command_methods=command_methods,
201201
sub_apis={
202202
name: _build_controller_api(sub_controller, path + [name])
203-
for name, sub_controller in controller.get_sub_controllers().items()
203+
for name, sub_controller in controller.sub_controllers.items()
204204
},
205205
description=controller.description,
206206
)

src/fastcs/controller.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def connect_attribute_ios(self) -> None:
6767
if isinstance(attr, AttrR):
6868
attr.set_update_callback(io.update)
6969

70-
for controller in self.get_sub_controllers().values():
70+
for controller in self.sub_controllers.values():
7171
controller.connect_attribute_ios()
7272

7373
@property
@@ -158,13 +158,16 @@ def add_sub_controller(self, name: str, sub_controller: Controller):
158158
if isinstance(sub_controller.root_attribute, Attribute):
159159
self.attributes[name] = sub_controller.root_attribute
160160

161-
def get_sub_controllers(self) -> dict[str, Controller]:
161+
@property
162+
def sub_controllers(self) -> dict[str, Controller]:
162163
return self.__sub_controller_tree
163164

164165
def __repr__(self):
165-
return f"""\
166-
{type(self).__name__}({self.path}, {list(self.__sub_controller_tree.keys())})\
167-
"""
166+
name = self.__class__.__name__
167+
path = ".".join(self.path) or None
168+
sub_controllers = list(self.sub_controllers.keys()) or None
169+
170+
return f"{name}(path={path}, sub_controllers={sub_controllers})"
168171

169172
def __setattr__(self, name, value):
170173
if isinstance(value, Attribute):

tests/test_controller.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ def test_controller_nesting():
1515

1616
assert sub_controller.path == ["a"]
1717
assert sub_sub_controller.path == ["a", "b"]
18-
assert controller.get_sub_controllers() == {"a": sub_controller}
19-
assert sub_controller.get_sub_controllers() == {"b": sub_sub_controller}
18+
assert controller.sub_controllers == {"a": sub_controller}
19+
assert sub_controller.sub_controllers == {"b": sub_sub_controller}
2020

2121
with pytest.raises(ValueError, match=r"existing sub controller"):
2222
controller.a = Controller()

0 commit comments

Comments
 (0)