Skip to content

Commit b09d0ef

Browse files
authored
IO maps (#559)
* Refactor Workflow map setter Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com> * Remove return hint The method is in-place Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com> * Move the None check around Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com> --------- Signed-off-by: liamhuber <liamhuber@greyhavensolutions.com>
1 parent 44d68b2 commit b09d0ef

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

pyiron_workflow/workflow.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -225,10 +225,8 @@ def __init__(
225225
automate_execution: bool = True,
226226
**kwargs,
227227
):
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)
232230
self._inputs = None
233231
self._outputs = None
234232
self.automate_execution: bool = automate_execution
@@ -264,34 +262,36 @@ def _after_node_setup(
264262

265263
@property
266264
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)
268267
return self._inputs_map
269268

270269
@inputs_map.setter
271270
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)
276272

277273
@property
278274
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)
280277
return self._outputs_map
281278

282279
@outputs_map.setter
283280
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:
285284
if new_map is not None:
285+
if isinstance(new_map, dict):
286+
self._deduplicate_nones(new_map)
286287
new_map = bidict(new_map)
287-
self._outputs_map = new_map
288+
return new_map
288289

289290
@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")
295295

296296
@property
297297
def inputs(self) -> Inputs:

0 commit comments

Comments
 (0)