This repository has been archived by the owner on Nov 28, 2023. It is now read-only.
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.
Related to #105 and #111
So far in Canals we've used the type
Optional
to imply that a specific input value was not to be waited for when a component is ready to run. However, this is in conflict with the actual semantics ofOptional
, which refers to an input value that can be either of a type or None.This PR introduces a new type.
IsOptional
, to separate the two concepts.Note that
IsOptional
is an alias ofOptional
, so mypy may believe that the value can become None. On the other hand, if we don't useIsOptional
as an alias of Optional but rather a "no-op" type, some parameters need to be typed this way:which looks quite odd. Open to suggestions on this regard. A better name for the type might do the trick.
Note. This PR is BREAKING. Components need to be adapted, as with this change all inputs will become mandatory.
OLD SYNTAX:
NEW SYNTAX: