Source code for semi_cr.core.lab.station.runtime
from semi_cr.core.lab.instrument.connector import Routable
[docs]
def iter_child_modules(obj):
modules = getattr(obj, "modules", None)
if modules is not None:
if hasattr(modules, "values"):
yield from modules.values()
else:
yield from modules
submodules = getattr(obj, "submodules", None)
if isinstance(submodules, dict):
yield from submodules.values()
[docs]
def iter_routables(obj):
if isinstance(obj, Routable):
yield obj
for child in iter_child_modules(obj):
yield from iter_routables(child)