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)