Source code for aixcalibuha.utils
"""
Package containing utility functions used in different packages.
Contains a statistics analyzer and a visualizer.
"""
from typing import Union, List
from aixcalibuha import CalibrationClass
[docs]def validate_cal_class_input(
calibration_classes: Union[CalibrationClass, List[CalibrationClass]]
) -> List[CalibrationClass]:
"""Check if given list contains only CalibrationClass objects or is one
and return a list in both cases. Else raise an error"""
if isinstance(calibration_classes, list):
for cal_class in calibration_classes:
if not isinstance(cal_class, CalibrationClass):
raise TypeError(f"calibration_classes is of type {type(cal_class).__name__} "
f"but should be CalibrationClass")
elif isinstance(calibration_classes, CalibrationClass):
calibration_classes = [calibration_classes]
else:
raise TypeError(f"calibration_classes is of type {type(calibration_classes).__name__} "
f"but should be CalibrationClass or list")
return calibration_classes
[docs]class MaxIterationsReached(Exception):
"""
Exception raised for when the calibration
ends because the maximum number of
allowed iterations is reached.
"""