diff --git a/pyomo/contrib/parmest/parmest.py b/pyomo/contrib/parmest/parmest.py index 1dc0b8dc66d..8d0dc89fcd1 100644 --- a/pyomo/contrib/parmest/parmest.py +++ b/pyomo/contrib/parmest/parmest.py @@ -440,7 +440,7 @@ def TotalCost_rule(model): ) # Convert theta Params to Vars, and unfix theta Vars - theta_CUIDs = [v for k, v in model.unknown_parameters.items()] + theta_CUIDs = list(model.unknown_parameters.values()) parmest_model = utils.convert_params_to_vars(model, theta_CUIDs, fix_vars=False) return parmest_model diff --git a/pyomo/contrib/parmest/tests/test_utils.py b/pyomo/contrib/parmest/tests/test_utils.py index dfb3ade7aec..ef0e3b64f91 100644 --- a/pyomo/contrib/parmest/tests/test_utils.py +++ b/pyomo/contrib/parmest/tests/test_utils.py @@ -50,7 +50,7 @@ def test_convert_param_to_var(self): exp = ReactorDesignExperiment(data, 0) instance = exp.get_labeled_model() - param_CUIDs = [v for k, v in instance.unknown_parameters.items()] + param_CUIDs = list(instance.unknown_parameters.values()) m_vars = parmest.utils.convert_params_to_vars( instance, param_CUIDs, fix_vars=True ) @@ -120,7 +120,7 @@ def label_model(self): exp = RooneyBieglerExperimentIndexedParams(self.data.loc[0, :]) instance = exp.get_labeled_model() - param_CUIDs = [v for k, v in instance.unknown_parameters.items()] + param_CUIDs = list(instance.unknown_parameters.values()) m_vars = parmest.utils.convert_params_to_vars( instance, param_CUIDs, fix_vars=True ) diff --git a/pyomo/contrib/parmest/utils/model_utils.py b/pyomo/contrib/parmest/utils/model_utils.py index 74f5ea389d5..83d2566bbec 100644 --- a/pyomo/contrib/parmest/utils/model_utils.py +++ b/pyomo/contrib/parmest/utils/model_utils.py @@ -80,9 +80,9 @@ def convert_params_to_vars(model, param_CUIDs=None, fix_vars=False): vals = theta_object.extract_values() # get indexed Params - param_theta_objects = [theta_obj for _, theta_obj in theta_object.items()] - - # get indexed Param names + param_theta_objects = list(theta_object.values()) + + # get indexed Param CUIDs indexed_param_CUIDs.extend( ComponentUID(theta_obj) for theta_obj in theta_object.values() ) @@ -135,8 +135,7 @@ def convert_params_to_vars(model, param_CUIDs=None, fix_vars=False): # Convert Params to Vars in Expressions for expr in model.component_data_objects(pyo.Expression): - if expr.active and any( - ComponentUID(v) in param_CUIDs_set + if any(ComponentUID(v) in param_CUIDs_set for v in identify_mutable_parameters(expr) ): new_expr = replace_expressions(expr=expr, substitution_map=substitution_map)