Coverage for bim2sim/tasks/common/deserialize_elements.py: 46%

13 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-12 17:09 +0000

1import pickle 

2 

3from bim2sim.tasks.base import ITask 

4 

5 

6class DeserializeElements(ITask): 

7 """Deserialize elements, run() method holds detailed information.""" 

8 

9 touches = ('elements',) 

10 single_use = True 

11 

12 def run(self): 

13 """Deserializes the elements from a previous run. 

14 

15 Loads the serialized_elements from a previous run from the pickled 

16 object. 

17 

18 Returns: 

19 serialized_elements: dict[guid: serializedElement] of serialized 

20 elements 

21 """ 

22 pickle_path = self.paths.export / "serialized_elements.pickle" 

23 try: 

24 with open(pickle_path, 'rb') as file: 

25 elements = pickle.load(file) 

26 return elements, 

27 except KeyError: 

28 self.logger.warning(f"{self.__class__.__name__} task was executed " 

29 f"but no serialized elements you could be" 

30 f" found in path {pickle_path}")