Allow the definition of None
as default in process functions
#2582
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1210
It was impossible to define a process function with a keyword argument
that had
None
as default, because the dynamically created ports alwaysonly specified
orm.Data
as valid types. So the validation of thedefault value would fail during the spec definition. Here we detect if
None
is passed as the default in the function signature, in which casewe define the tuple of
orm.Data
andtype(None)
to be a valid type.Note that we need to use
type(None)
because the port validation lateron will call
isinstance(input, valid_types)
which will not work if oneof the values in
valid_types
is simplyNone
.The
Process._setup_inputs
had to be adjusted to skip values ofNone
because they cannot be linked to obviously but they can now potentially
be passed as inputs to a
Process
.