From e3d3d6b76010a6dd5c417f017339bec17fb07887 Mon Sep 17 00:00:00 2001 From: Evgeny Zinoviev Date: Tue, 14 Jun 2022 02:44:43 +0300 Subject: media: refactor sound_node, introduce camera_node --- src/home/media/__init__.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/home/media/__init__.py (limited to 'src/home/media/__init__.py') diff --git a/src/home/media/__init__.py b/src/home/media/__init__.py new file mode 100644 index 0000000..e8268cf --- /dev/null +++ b/src/home/media/__init__.py @@ -0,0 +1,21 @@ +import importlib +import itertools + +__map__ = { + 'types': ['MediaNodeType'], + 'record_client': ['SoundRecordClient', 'CameraRecordClient', 'RecordClient'], + 'node_server': ['MediaNodeServer'], + 'node_client': ['SoundNodeClient', 'CameraNodeClient', 'MediaNodeClient'], + 'storage': ['SoundRecordStorage', 'CameraRecordStorage', 'SoundRecordFile', 'CameraRecordFile', 'RecordFile'], + 'record': ['SoundRecorder', 'CameraRecorder'] +} + +__all__ = list(itertools.chain(*__map__.values())) + +def __getattr__(name): + if name in __all__: + for file, names in __map__.items(): + if name in names: + module = importlib.import_module(f'.{file}', __name__) + return getattr(module, name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") -- cgit v1.2.3