adafruit / adafruit/Adafruit_CircuitPython_asyncio
add TaskGroup here or in another library
- Dominant language
- Python
- Stars
- 30
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
Description
asyncio could really use a `TaskGroup` implementation, as provided by [Trio](https://trio.readthedocs.io/en/stable/) (aka nurseries), [Curio](https://curio.readthedocs.io/en/stable/), [aiotools](https://aiotools.readthedocs.io/en/latest/aiotools.taskgroup.html), and [EdgeDB](https://github.com/edgedb/edgedb/blob/master/edb/common/taskgroup.py).
`TaskGroup` was originally slated to be added Python as long ago as 3.8, but was held up because exception group handling was not available. However, exception groups are now being added: [PEP 654](https://www.python.org/dev/peps/pep-0654/), [PR](https://github.com/python/cpython/pull/29581)). Once that PEP is implemented, `TaskGroup` will probably follow. But the timeline for PEP 654 to go into the MicroPython core is unclear. So any TaskGroup we add will not be quite compatible, and we probably want to add it in an ancillary library (`adafruit_asyncio` or `asynciox` or `xasyncio` or ??).
Contributor guide
No contributing guide indexed for this repository
Research direction
Compare the referenced Trio, Curio, aiotools, and EdgeDB implementations, starting with edb/common/taskgroup.py, and review the PEP 654 and linked CPython pull request context. First establish whether TaskGroup belongs in this library or an ancillary library. Done means the placement, compatibility expectations, and implementation scope are agreed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100