Source code for CADETProcess.dataStructure.parameter_group

from typing import Any

from CADETProcess import CADETProcessError

__all__ = ["ParameterWrapper"]


[docs] class ParameterWrapper: """ Base class for converting the config from objects such as units. Attributes ---------- _base_class : type Type constraint for wrapped object _wrapped_object : obj Object whose config is to be converted Raises ------ CADETProcessError If the wrapped_object is no instance of the base_class. """ _base_class = object def __init__(self, wrapped_object: Any) -> None: """Construct ParameterWrapper object.""" if not isinstance(wrapped_object, self._baseClass): raise CADETProcessError(f"Expected {self._baseClass}") model = wrapped_object.model try: self.model_parameters = self._model_parameters[model] except KeyError: raise CADETProcessError("Model Type not defined") self._wrapped_object = wrapped_object @property def parameters(self) -> dict: """dict: Parameters dictionary.""" model_parameters = {} model_parameters[self._model_type] = self.model_parameters["name"] for key, value in self.model_parameters["parameters"].items(): value = getattr(self._wrapped_object, value) if value is not None: model_parameters[key] = value for key, value in self.model_parameters.get("fixed", dict()).items(): if isinstance(value, list): value = self._wrapped_object.n_comp * value model_parameters[key] = value return model_parameters