Coverage for rivapy/tools/factory.py: 79%
14 statements
« prev ^ index » next coverage.py v7.8.2, created at 2025-06-05 14:27 +0000
« prev ^ index » next coverage.py v7.8.2, created at 2025-06-05 14:27 +0000
1_factory_entries = None
3def _factory(depp=None):
4 global _factory_entries
5 if _factory_entries is None:
6 _factory_entries = {}
7 return _factory_entries
9def create(data: dict)->object:
10 if not isinstance(data, dict):
11 return data
12 if 'cls' not in data.keys():
13 raise Exception('Given dictionary has not a cls key, unable create from factory.')
14 cls = data['cls']
16 if cls not in _factory_entries.keys():
17 raise Exception('No class registered for given cls key ' + data['cls'])
18 return _factory_entries[cls].from_dict(data)