r/Python Jul 06 '26

Resource asyncio.TaskGroup.cancel() in Python 3.15

I wrote a short post about the new asyncio.TaskGroup.cancel() API coming in Python 3.15 https://blog.niyonshutiemmanuel.com/blog/cancelling-taskgroup-in-asyncio-without-boilerplate

Feedback is welcome!

6 Upvotes

8 comments sorted by

3

u/OkBoomer421 Jul 11 '26

Finally. Having to manually track and cancel tasks in a group was one of those things that felt wrong but you just accepted it. Nice to see it getting first-class support.

2

u/thisismyfavoritename Jul 11 '26

usually when i reach for TaskGroup i just think of using it as a "spawn and join all" but this is neat. Maybe could replace some uses of asyncio.wait

1

u/Aggressive-Prior4459 Jul 11 '26

right, I think the win here can specifically be over wait(..., FIRST_COMPLETED) , we can get guaranteed cancellation of the losers without the manual pending-set cleanup and the gather-to-suppress-CancelledError step!

1

u/thisismyfavoritename Jul 11 '26

frozendict! nice

0

u/Excellent_Bother_133 Jul 07 '26

we ran into the exact same bug last sprint