achimnol / aiotools

Idiomatic asyncio utilties
https://aiotools.readthedocs.io
MIT License
154 stars 12 forks source link

Rewrite TaskGroup and PersistentTaskGroup for Python 3.11 #36

Closed achimnol closed 2 years ago

achimnol commented 2 years ago

This PR rewrites PersistenTaskGroup for Python 3.11. It works only for the latest Python 3.11 development version checked out from GitHub. It supports TaskGroup and PersistentTaskGroup on Python 3.6 to 3.11, while aiotools.TaskGroup uses the stdlib's implementation on 3.11.0-alpha6 or later. The test suite ensures the same behavior of the custom implementation and the stdlib. At the time of writing, Python 3.11.0-alpha5 is the latest available build in GitHub Actions, so the CI runs only the custom implementations but I have checked the same test results on a local build of CPython.

refs https://bugs.python.org/issue46843

codecov[bot] commented 2 years ago

Codecov Report

Merging #36 (806bafc) into main (0051cd9) will decrease coverage by 12.76%. The diff coverage is 48.51%.

Impacted file tree graph

@@             Coverage Diff             @@
##             main      #36       +/-   ##
===========================================
- Coverage   78.63%   65.87%   -12.77%     
===========================================
  Files          11       16        +5     
  Lines         941     1263      +322     
===========================================
+ Hits          740      832       +92     
- Misses        201      431      +230     
Impacted Files Coverage Δ
src/aiotools/__init__.py 93.33% <ø> (-0.42%) :arrow_down:
src/aiotools/taskgroup/base.py 0.00% <0.00%> (ø)
src/aiotools/taskgroup/persistent.py 0.00% <0.00%> (ø)
src/aiotools/taskgroup/__init__.py 61.53% <61.53%> (ø)
src/aiotools/taskgroup/types.py 72.50% <72.50%> (ø)
src/aiotools/taskgroup/persistent_compat.py 82.85% <82.85%> (ø)
src/aiotools/taskgroup/base_compat.py 81.61% <100.00%> (ø)
src/aiotools/taskgroup/common.py 100.00% <100.00%> (ø)
src/aiotools/timer.py 100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 0051cd9...806bafc. Read the comment docs.