Coverage for rivapy/marketdata/factory.py: 83%

12 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 'cls' not in data.keys(): 

11 raise Exception('Given dictionary has not a cls key, unable create from factory.') 

12 cls = data['cls'] 

13 

14 if cls not in _factory_entries.keys(): 

15 raise Exception('No class registered for given cls key ' + data['cls']) 

16 return _factory_entries[cls].from_dict(data)