"""Validation functionality for parameters."""fromtypingimportAnyfromattrs.validatorsimportgt,instance_of,lt
[docs]defvalidate_unique_values(# noqa: DOC101, DOC103obj:Any,_:Any,value:list)->None:"""Validate that there are no duplicates in ``value``. Raises: ValueError: If there are duplicates in ``value``. """iflen(set(value))!=len(value):raiseValueError(f"Cannot assign the following values containing duplicates to "f"parameter {obj.name}: {value}.")
[docs]defvalidate_decorrelation(obj:Any,attribute:Any,value:float)->None:"""Validate the decorrelation."""instance_of((bool,float))(obj,attribute,value)ifisinstance(value,float):gt(0.0)(obj,attribute,value)lt(1.0)(obj,attribute,value)