@@ -1163,22 +1163,20 @@ def load_inputs_from_json(self, json_file, overwrite=True):
1163
1163
with open (json_file ) as fhandle :
1164
1164
inputs_dict = json .load (fhandle )
1165
1165
1166
- for key , newval in list (inputs_dict .items ()):
1167
- if not hasattr (self .inputs , key ):
1168
- continue
1169
- val = getattr (self .inputs , key )
1170
- if overwrite or not isdefined (val ):
1171
- setattr (self .inputs , key , newval )
1166
+ def_inputs = []
1167
+ if not overwrite :
1168
+ def_inputs = list (self .inputs .get_traitsfree ().keys ())
1169
+
1170
+ new_inputs = list (set (list (inputs_dict .keys ())) - set (def_inputs ))
1171
+ for key in new_inputs :
1172
+ if hasattr (self .inputs , key ):
1173
+ setattr (self .inputs , key , inputs_dict [key ])
1172
1174
1173
1175
def save_inputs_to_json (self , json_file ):
1174
1176
"""
1175
1177
A convenient way to save current inputs to a JSON file.
1176
1178
"""
1177
- inputs = self .inputs .get ()
1178
- for key , val in list (inputs .items ()):
1179
- if not isdefined (val ):
1180
- inputs .pop (key , None )
1181
-
1179
+ inputs = self .inputs .get_traitsfree ()
1182
1180
iflogger .debug ('saving inputs {}' , inputs )
1183
1181
with open (json_file , 'w' ) as fhandle :
1184
1182
json .dump (inputs , fhandle , indent = 4 )
0 commit comments