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

14 statements  

« prev     ^ index     » next       coverage.py v7.12.0, created at 2025-11-27 14:36 +0000

1_factory_entries = None 

2 

3 

4def _factory(depp=None): 

5 global _factory_entries 

6 if _factory_entries is None: 

7 _factory_entries = {} 

8 return _factory_entries 

9 

10 

11def create(data: dict) -> object: 

12 if not isinstance(data, dict): 

13 return data 

14 if "cls" not in data.keys(): 

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

16 cls = data["cls"] 

17 

18 if cls not in _factory_entries.keys(): 

19 raise Exception("No class registered for given cls key " + data["cls"]) 

20 return _factory_entries[cls].from_dict(data)