Coverage for rivapy/marketdata_tools/factory.py: 43%

14 statements  

« prev     ^ index     » next       coverage.py v7.8.2, created at 2025-06-05 14:27 +0000

1_factory_entries = None 

2 

3def _factory(depp=None): 

4 global _factory_entries 

5 if _factory_entries is None: 

6 _factory_entries = {} 

7 return _factory_entries 

8 

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'] 

15 

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)