@@ -225,10 +225,8 @@ def __init__(
225
225
automate_execution : bool = True ,
226
226
** kwargs ,
227
227
):
228
- self ._inputs_map = None
229
- self ._outputs_map = None
230
- self .inputs_map = inputs_map
231
- self .outputs_map = outputs_map
228
+ self ._inputs_map = self ._sanitize_map (inputs_map )
229
+ self ._outputs_map = self ._sanitize_map (outputs_map )
232
230
self ._inputs = None
233
231
self ._outputs = None
234
232
self .automate_execution : bool = automate_execution
@@ -264,34 +262,36 @@ def _after_node_setup(
264
262
265
263
@property
266
264
def inputs_map (self ) -> bidict | None :
267
- self ._deduplicate_nones (self ._inputs_map )
265
+ if self ._inputs_map is not None :
266
+ self ._deduplicate_nones (self ._inputs_map )
268
267
return self ._inputs_map
269
268
270
269
@inputs_map .setter
271
270
def inputs_map (self , new_map : dict | bidict | None ):
272
- self ._deduplicate_nones (new_map )
273
- if new_map is not None :
274
- new_map = bidict (new_map )
275
- self ._inputs_map = new_map
271
+ self ._inputs_map = self ._sanitize_map (new_map )
276
272
277
273
@property
278
274
def outputs_map (self ) -> bidict | None :
279
- self ._deduplicate_nones (self ._outputs_map )
275
+ if self ._outputs_map is not None :
276
+ self ._deduplicate_nones (self ._outputs_map )
280
277
return self ._outputs_map
281
278
282
279
@outputs_map .setter
283
280
def outputs_map (self , new_map : dict | bidict | None ):
284
- self ._deduplicate_nones (new_map )
281
+ self ._outputs_map = self ._sanitize_map (new_map )
282
+
283
+ def _sanitize_map (self , new_map : dict | bidict | None ) -> bidict | None :
285
284
if new_map is not None :
285
+ if isinstance (new_map , dict ):
286
+ self ._deduplicate_nones (new_map )
286
287
new_map = bidict (new_map )
287
- self . _outputs_map = new_map
288
+ return new_map
288
289
289
290
@staticmethod
290
- def _deduplicate_nones (some_map : dict | bidict | None ) -> dict | bidict | None :
291
- if some_map is not None :
292
- for k , v in some_map .items ():
293
- if v is None :
294
- some_map [k ] = (None , f"{ k } disabled" )
291
+ def _deduplicate_nones (some_map : dict | bidict ):
292
+ for k , v in some_map .items ():
293
+ if v is None :
294
+ some_map [k ] = (None , f"{ k } disabled" )
295
295
296
296
@property
297
297
def inputs (self ) -> Inputs :
0 commit comments