Coverage for aixcalibuha/utils/__init__.py: 83%

12 statements  

« prev     ^ index     » next       coverage.py v7.4.1, created at 2024-01-27 10:48 +0000

1""" 

2Package containing utility functions used in different packages. 

3Contains a statistics analyzer and a visualizer. 

4""" 

5from typing import Union, List 

6from aixcalibuha import CalibrationClass 

7 

8 

9def validate_cal_class_input( 

10 calibration_classes: Union[CalibrationClass, List[CalibrationClass]] 

11) -> List[CalibrationClass]: 

12 """Check if given list contains only CalibrationClass objects or is one 

13 and return a list in both cases. Else raise an error""" 

14 if isinstance(calibration_classes, list): 

15 for cal_class in calibration_classes: 

16 if not isinstance(cal_class, CalibrationClass): 

17 raise TypeError(f"calibration_classes is of type {type(cal_class).__name__} " 

18 f"but should be CalibrationClass") 

19 elif isinstance(calibration_classes, CalibrationClass): 

20 calibration_classes = [calibration_classes] 

21 else: 

22 raise TypeError(f"calibration_classes is of type {type(calibration_classes).__name__} " 

23 f"but should be CalibrationClass or list") 

24 return calibration_classes 

25 

26 

27class MaxIterationsReached(Exception): 

28 """ 

29 Exception raised for when the calibration 

30 ends because the maximum number of 

31 allowed iterations is reached. 

32 """