From ef1c1d72058b89d1e944fc31204aa2d732ea58b9 Mon Sep 17 00:00:00 2001 From: Richard Date: Mon, 6 Jun 2022 14:11:00 +0100 Subject: [PATCH 1/2] don't pass private attributes from model to instance --- autofit/mapper/prior_model/collection.py | 2 ++ test_autofit/mapper/model/test_freeze.py | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/autofit/mapper/prior_model/collection.py b/autofit/mapper/prior_model/collection.py index 43c49665c..aa3db67a7 100644 --- a/autofit/mapper/prior_model/collection.py +++ b/autofit/mapper/prior_model/collection.py @@ -172,6 +172,8 @@ def _instance_for_arguments(self, arguments): """ result = ModelInstance() for key, value in self.__dict__.items(): + if key.startswith("_"): + continue if isinstance(value, AbstractPriorModel): value = value.instance_for_arguments(arguments) elif isinstance(value, Prior): diff --git a/test_autofit/mapper/model/test_freeze.py b/test_autofit/mapper/model/test_freeze.py index 57a3ac70b..67418a561 100644 --- a/test_autofit/mapper/model/test_freeze.py +++ b/test_autofit/mapper/model/test_freeze.py @@ -81,3 +81,11 @@ def test_unfreeze( frozen_collection.unfreeze() frozen_collection["key"] = "value" frozen_collection[0].key = "value" + + +def test_unfrozen_instance( + frozen_collection +): + instance = frozen_collection.instance_from_prior_medians() + assert instance._frozen_cache == {} + assert instance._is_frozen is False From 03b90f5c21795884944975e580da1f7eb5d09ec1 Mon Sep 17 00:00:00 2001 From: Richard Date: Mon, 6 Jun 2022 14:11:14 +0100 Subject: [PATCH 2/2] condition for sneaky pool is that number of cores exceeds 1 --- autofit/non_linear/nest/dynesty/abstract.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autofit/non_linear/nest/dynesty/abstract.py b/autofit/non_linear/nest/dynesty/abstract.py index 241313e1c..4eb911c72 100644 --- a/autofit/non_linear/nest/dynesty/abstract.py +++ b/autofit/non_linear/nest/dynesty/abstract.py @@ -141,7 +141,7 @@ def _fit(self, model: AbstractPriorModel, analysis, log_likelihood_cap=None): self.logger.info("Existing Dynesty samples found, resuming non-linear search.") else: - if self.number_of_cores >= 1: + if self.number_of_cores > 1: pool = self.make_sneaky_pool( fitness_function )