def dict(self) -> dict: """ A dictionary representation of this object """ from autofit.mapper.prior_model.abstract import AbstractPriorModel from autofit.mapper.prior_model.collection import CollectionPriorModel from autofit.mapper.prior_model.prior_model import PriorModel from autofit.mapper.prior.tuple_prior import TuplePrior if isinstance(self, CollectionPriorModel): type_ = "collection" elif isinstance(self, AbstractPriorModel) and self.prior_count == 0: type_ = "instance" elif isinstance(self, PriorModel): type_ = "model" elif isinstance(self, TuplePrior): type_ = "tuple_prior" else: raise AssertionError( f"{self.__class__.__name__} cannot be serialised to dict") dict_ = {"type": type_} for key, value in self._dict.items(): try: if not isinstance(value, ModelObject): value = AbstractPriorModel.from_instance(value) value = value.dict() except AttributeError: pass except TypeError: pass dict_[key] = value return dict_
def as_model(self, model_classes=tuple()): from autofit.mapper.prior_model.abstract import AbstractPriorModel return AbstractPriorModel.from_instance(self, model_classes)