@@ -1079,11 +1079,18 @@ def _assign_params(self, info_likelihood, info_theory=None,
10791079 "Output params can only be computed by one likelihood/theory, "
10801080 "but some were claimed by more than one: %r." , multi_assigned_output )
10811081 # Finished! Assign and update infos
1082- for assign , option in ((input_assign , "input_params" ),
1083- (output_assign , "output_params" )):
1082+ for assign , option , output in ((input_assign , "input_params" , False ),
1083+ (output_assign , "output_params" , True )):
10841084 for component in self .components :
1085- setattr (component , option ,
1086- [p for p , assign in assign .items () if component in assign ])
1085+ assign_params = [p for p , assign in assign .items () if component in assign ]
1086+ current_assign = getattr (component , option )
1087+ if output or current_assign is unset_params :
1088+ setattr (component , option , assign_params )
1089+ elif set (assign_params ) != set (current_assign ):
1090+ raise LoggedError (
1091+ self .log , "exising %s %r do not match assigned parameters %r" ,
1092+ option , assign_params , current_assign )
1093+
10871094 # Update infos! (helper theory parameters stored in yaml with host)
10881095 inf = (info_likelihood if component in self .likelihood .values () else
10891096 info_theory )
0 commit comments