def retrieve_clp_typecheck( model: type[Model], parameters: ParameterGroup, clp_labels: dict[str, list[str] | list[list[str]]], reduced_clp_labels: dict[str, list[str] | list[list[str]]], reduced_clps: dict[str, list[np.ndarray]], data: dict[str, xr.Dataset], ) -> dict[str, list[np.ndarray]]: assert isinstance(parameters, ParameterGroup) assert isinstance(reduced_clps, dict) assert all( isinstance(dataset_clps, list) for dataset_clps in reduced_clps.values()) assert all( [isinstance(index_clps, np.ndarray) for index_clps in dataset_clps] for dataset_clps in reduced_clps.values()) assert isinstance(data, dict) assert all(isinstance(label, str) for label in data) assert all(isinstance(dataset, xr.Dataset) for dataset in data.values()) assert isinstance(clp_labels, dict) assert isinstance(reduced_clp_labels, dict) assert all( isinstance(dataset_clp_labels, list) for dataset_clp_labels in reduced_clp_labels.values()) assert all([[isinstance(label, str) for label in index_labels] for index_labels in dataset_clp_labels] for dataset_clp_labels in reduced_clp_labels.values()) if model.index_dependent(): for dataset_clp_labels in clp_labels.values(): assert all( isinstance(index_label, list) for index_label in dataset_clp_labels) assert all([isinstance(label, str) for label in index_label] for index_label in dataset_clp_labels) assert all([ isinstance(index_labels, list) for index_labels in dataset_clp_labels ] for dataset_clp_labels in reduced_clp_labels.values()) else: for dataset_clp_labels in clp_labels.values(): assert all(isinstance(label, str) for label in dataset_clp_labels) model.retrieve_clp_function_called = True return reduced_clps
def additional_penalty_typecheck( model: type[Model], parameters: ParameterGroup, clp_labels: dict[str, list[str] | list[list[str]]], clps: dict[str, list[np.ndarray]], matrices: dict[str, np.ndarray | list[np.ndarray]], data: dict[str, xr.Dataset], group_tolerance: float, ) -> np.ndarray: assert isinstance(parameters, ParameterGroup) assert isinstance(group_tolerance, float) assert isinstance(clps, dict) assert all( isinstance(dataset_clps, list) for dataset_clps in clps.values()) assert all( [isinstance(index_clps, np.ndarray) for index_clps in dataset_clps] for dataset_clps in clps.values()) assert isinstance(data, dict) assert all(isinstance(label, str) for label in data) assert all(isinstance(dataset, xr.Dataset) for dataset in data.values()) assert isinstance(clp_labels, dict) assert isinstance(matrices, dict) if model.index_dependent(): for dataset_clp_labels in clp_labels.values(): assert all( isinstance(index_label, list) for index_label in dataset_clp_labels) assert all([isinstance(label, str) for label in index_label] for index_label in dataset_clp_labels) for matrix in matrices.values(): assert isinstance(matrix, list) assert all( isinstance(index_matrix, np.ndarray) for index_matrix in matrix) else: for dataset_clp_labels in clp_labels.values(): assert all(isinstance(label, str) for label in dataset_clp_labels) for matrix in matrices.values(): assert isinstance(matrix, np.ndarray) model.additional_penalty_function_called = True return np.asarray([0.1])
def constrain_matrix_function_typecheck( model: type[Model], label: str, parameters: ParameterGroup, clp_labels: list[str], matrix: np.ndarray, index: float, ): assert isinstance(label, str) assert isinstance(parameters, ParameterGroup) assert isinstance(clp_labels, list) assert all(isinstance(clp_label, str) for clp_label in clp_labels) assert isinstance(matrix, np.ndarray) if model.index_dependent(): assert isinstance(index, float) else: assert index is None model.constrain_matrix_function_called = True return (clp_labels, matrix)