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.
chore: move CancelledError and InvalidStateError to tasks #55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: move CancelledError and InvalidStateError to tasks #55
Changes from 1 commit
529b01d
516dc86
3fd6059
3921b20
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could define these conditionally by testing whether they are in
_asyncio
, usinghasattr()
. I don't know whether you would then want to define them intask.py
orcore.py
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can do that, sure.
To clarify, I was kind of doing this already by the
from _asyncio import CancelledError, InvalidStateError
. In the case of the_asyncio
existing but missing the exceptions (because of a mismatched version of CircuitPython?) anAttributeError
is raised, leading to pulling them from task instead.Even with that in mind, these should use
hasattr()
?Where they live is somewhat inconsequential, as long as they're loaded when they don't exist in CircuitPython proper. An alternative was that they'd live under an
exceptions.py
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking these exceptions are defined unconditionally in
task.py
right now, and that they could be conditionalized. But now I'm realizing thattask.py
is not used at all if_asyncio
exists. Is that right? If so, then I'm off the mark.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If
_asyncio
exists, that's right.With this new change, if
_asyncio
exists but doesn't have the two new errors we'll reach into task.py and grab these two errors. That does mean that we'll interpret the rest oftask.py
-- which I'm realizing now might be undesirable to save on memory usage.If you think that's a concern I can move them to their own conditionally imported file
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it would be a waste of time and RAM space if it gets imported. So maybe just define them inside one of the arms of the
import
try-except, or factor them intoexceptions.py
as you suggested.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated per request - it's in the import
try-except
because I didn't want to move theTimeoutError