feat: support task methods for exception
and result
#54
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.
Adds the following methods to the
Task
class to bring it closer in line with CPythonget_coro
- a method that returns the micropython specificTask.coro
propertyresult
- returns the result if no exception was raised or raised the exception that this task hadexception
- returns the exception if an exception was raisedcancelled
- returns true if this task had been cancelledset_exception
- exists on the class but always raises an exception per CPython's implementationset_result
- exists on the class but always raises an exception per CPython implementationTask.cancel
was updated to support amsg
parameter which is passed to theCancelledError
In progress is
add_done_callback
andremove_done_callback
- these currently raise aNotImplementedError
but are how CPython manages the done callbacks (unlike CircuitPython supporting via modifyingTask.state
)This requires changes to
circuitpython
's_asyncio
to properly work.fixes #53