| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:3dab53c1-8443-62f4-ac69-74cbb18cd17c |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | 811E:277FD5:21520DE:2C9E81F:6A5BD036 |
| html-safe-nonce | be52b011dc995865dd230aa0b8a623d306d602e11e54c8024b50a4422db97847 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MTFFOjI3N0ZENToyMTUyMERFOjJDOUU4MUY6NkE1QkQwMzYiLCJ2aXNpdG9yX2lkIjoiNTk2MDU4MDgwOTQ1MTM2MDMxMCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | b00cc41e47aea1dfc9318245e4cba8fd3f716d06d005d8aabd70af3c583be323 |
| hovercard-subject-tag | pull_request:846617192 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | ///pull_requests/show/files |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/python/cpython/pull/31270/files |
| twitter:image | https://avatars.githubusercontent.com/u/2894642?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/2894642?s=400&v=4 |
| og:image:alt | This is EdgeDB's TaskGroup class, adapted for Python 3.11.
In the individual commits you can see how I evolved this from the version in EdgeDB.
Here's a to-do list:
Figure out why in test... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 5290d7e14309ad1e76106a9c4237bd1041517e83ea182c8ab756752cb0c6940b |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 9c975978430e9ad293956f2bbdaf153b1bd84a99 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| Skip to content | https://github.com/python/cpython/pull/31270/files#start-of-content |
|
| https://github.com/ |
|
Sign in
| https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F31270%2Ffiles |
| GitHub CopilotWrite better code with AI | https://github.com/features/copilot |
| GitHub Copilot appDirect agents from issue to merge | https://github.com/features/ai/github-app |
| MCP RegistryNewIntegrate external tools | https://github.com/mcp |
| ActionsAutomate any workflow | https://github.com/features/actions |
| CodespacesInstant dev environments | https://github.com/features/codespaces |
| IssuesPlan and track work | https://github.com/features/issues |
| Code ReviewManage code changes | https://github.com/features/code-review |
| GitHub Advanced SecurityFind and fix vulnerabilities | https://github.com/security/advanced-security |
| Code securitySecure your code as you build | https://github.com/security/advanced-security/code-security |
| Secret protectionStop leaks before they start | https://github.com/security/advanced-security/secret-protection |
| Why GitHub | https://github.com/why-github |
| Documentation | https://docs.github.com |
| Blog | https://github.blog |
| Changelog | https://github.blog/changelog |
| Marketplace | https://github.com/marketplace |
| View all features | https://github.com/features |
| Enterprises | https://github.com/enterprise |
| Small and medium teams | https://github.com/team |
| Startups | https://github.com/enterprise/startups |
| Nonprofits | https://github.com/solutions/industry/nonprofits |
| App Modernization | https://github.com/solutions/use-case/app-modernization |
| DevSecOps | https://github.com/solutions/use-case/devsecops |
| DevOps | https://github.com/solutions/use-case/devops |
| CI/CD | https://github.com/solutions/use-case/ci-cd |
| View all use cases | https://github.com/solutions/use-case |
| Healthcare | https://github.com/solutions/industry/healthcare |
| Financial services | https://github.com/solutions/industry/financial-services |
| Manufacturing | https://github.com/solutions/industry/manufacturing |
| Government | https://github.com/solutions/industry/government |
| View all industries | https://github.com/solutions/industry |
| View all solutions | https://github.com/solutions |
| AI | https://github.com/resources/articles?topic=ai |
| Software Development | https://github.com/resources/articles?topic=software-development |
| DevOps | https://github.com/resources/articles?topic=devops |
| Security | https://github.com/resources/articles?topic=security |
| View all topics | https://github.com/resources/articles |
| Customer stories | https://github.com/customer-stories |
| Events & webinars | https://github.com/resources/events |
| Ebooks & reports | https://github.com/resources/whitepapers |
| Business insights | https://github.com/solutions/executive-insights |
| GitHub Skills | https://skills.github.com |
| Documentation | https://docs.github.com |
| Customer support | https://support.github.com |
| Community forum | https://github.com/orgs/community/discussions |
| Trust center | https://github.com/trust-center |
| Partners | https://github.com/partners |
| View all resources | https://github.com/resources |
| GitHub SponsorsFund open source developers | https://github.com/open-source/sponsors |
| Security Lab | https://securitylab.github.com |
| Maintainer Community | https://maintainers.github.com |
| Accelerator | https://github.com/open-source/accelerator |
| GitHub Stars | https://stars.github.com |
| Archive Program | https://archiveprogram.github.com |
| Topics | https://github.com/topics |
| Trending | https://github.com/trending |
| Collections | https://github.com/collections |
| Enterprise platformAI-powered developer platform | https://github.com/enterprise |
| GitHub Advanced SecurityEnterprise-grade security features | https://github.com/security/advanced-security |
| Copilot for BusinessEnterprise-grade AI features | https://github.com/features/copilot/copilot-business |
| Premium SupportEnterprise-grade 24/7 support | https://github.com/enterprise/premium-support |
| Pricing | https://github.com/pricing |
| Search syntax tips | https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax |
| documentation | https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax |
|
Sign in
| https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F31270%2Ffiles |
|
Sign up
| https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=python%2Fcpython |
| Reload | https://github.com/python/cpython/pull/31270/files |
| Reload | https://github.com/python/cpython/pull/31270/files |
| Reload | https://github.com/python/cpython/pull/31270/files |
| Please reload this page | https://github.com/python/cpython/pull/31270/files |
|
python
| https://github.com/python |
| cpython | https://github.com/python/cpython |
| Please reload this page | https://github.com/python/cpython/pull/31270/files |
|
Notifications
| https://github.com/login?return_to=%2Fpython%2Fcpython |
|
Fork
34.9k
| https://github.com/login?return_to=%2Fpython%2Fcpython |
|
Star
73.8k
| https://github.com/login?return_to=%2Fpython%2Fcpython |
|
Code
| https://github.com/python/cpython |
|
Issues
5k+
| https://github.com/python/cpython/issues |
|
Pull requests
2.4k
| https://github.com/python/cpython/pulls |
|
Actions
| https://github.com/python/cpython/actions |
|
Projects
| https://github.com/python/cpython/projects |
|
Security and quality
0
| https://github.com/python/cpython/security |
|
Insights
| https://github.com/python/cpython/pulse |
|
Code
| https://github.com/python/cpython |
|
Issues
| https://github.com/python/cpython/issues |
|
Pull requests
| https://github.com/python/cpython/pulls |
|
Actions
| https://github.com/python/cpython/actions |
|
Projects
| https://github.com/python/cpython/projects |
|
Security and quality
| https://github.com/python/cpython/security |
|
Insights
| https://github.com/python/cpython/pulse |
| Sign up for GitHub
| https://github.com/signup?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose |
| terms of service | https://docs.github.com/terms |
| privacy statement | https://docs.github.com/privacy |
| Sign in | https://github.com/login?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose |
| gvanrossum | https://github.com/gvanrossum |
| python:main | https://github.com/python/cpython/tree/main |
| gvanrossum:taskgroups | https://github.com/gvanrossum/cpython/tree/taskgroups |
|
Conversation
72
| https://github.com/python/cpython/pull/31270 |
|
Commits
24
| https://github.com/python/cpython/pull/31270/commits |
|
Checks
0
| https://github.com/python/cpython/pull/31270/checks |
|
Files changed
| https://github.com/python/cpython/pull/31270/files |
| Please reload this page | https://github.com/python/cpython/pull/31270/files |
|
bpo-46752: Introduce task groups in asyncio
| https://github.com/python/cpython/pull/31270/files#top |
|
Show all changes
24 commits
| https://github.com/python/cpython/pull/31270/files |
|
7edee0b
Integrate task groups from EdgeDb
gvanrossum Feb 10, 2022
| https://github.com/python/cpython/pull/31270/commits/7edee0b2ae2bc8fcddf677961f279b59d4bf720d |
|
f495375
Make test_taskgroups.py run and pass
gvanrossum Feb 10, 2022
| https://github.com/python/cpython/pull/31270/commits/f4953754aa507b92c4dfdf1306d57ceee25365ae |
|
a87275a
Rename taskgroup to taskgroups in the test code
gvanrossum Feb 10, 2022
| https://github.com/python/cpython/pull/31270/commits/a87275a694fd4e40077472b7df92070584ea4e94 |
|
4df0acc
Export TaskGroup from asyncio; remove __future__ import
gvanrossum Feb 10, 2022
| https://github.com/python/cpython/pull/31270/commits/4df0accad4163881765d25bc454d24540de8e3cd |
|
56db921
Only keep the newest _is_base_error() and _task_cancel()
gvanrossum Feb 10, 2022
| https://github.com/python/cpython/pull/31270/commits/56db921d7278672cba9a6e4aac9b61a690a75fb9 |
|
500581e
Get rid of MultiError in favor of ExceptionGroup
gvanrossum Feb 11, 2022
| https://github.com/python/cpython/pull/31270/commits/500581eb0c788043756ff1127160e8c5827cb1d2 |
|
4843e94
Add TaskGroupError to __all__
gvanrossum Feb 11, 2022
| https://github.com/python/cpython/pull/31270/commits/4843e94dfc00350de44e0612e704a63dcd162c97 |
|
63e712d
Avoid DeprecationWarning: There is no current event loop
gvanrossum Feb 11, 2022
| https://github.com/python/cpython/pull/31270/commits/63e712dc2d381f9b91cb5fe2644b17823671952a |
|
d233dd1
Prevent warning "test altered the execution environment"
gvanrossum Feb 11, 2022
| https://github.com/python/cpython/pull/31270/commits/d233dd199ecfeb36fcd230589b4f435da820d9b2 |
|
af574d5
Get rid of custom TaskGroupError
gvanrossum Feb 11, 2022
| https://github.com/python/cpython/pull/31270/commits/af574d58300b8920127cca23d8f1878f5d614b3b |
|
299f366
Update comments explaining why test 21 doesn't work
gvanrossum Feb 12, 2022
| https://github.com/python/cpython/pull/31270/commits/299f3663dcd0c0e5174d3f29e8a03681335b40d6 |
|
9de3c87
Add tests showing that 'plain' BaseExceptions work
gvanrossum Feb 12, 2022
| https://github.com/python/cpython/pull/31270/commits/9de3c878d1cba85bb5a21d93a22d2bbc50e12c2a |
|
0e1355d
Allow creating new tasks while __aexit__ is waiting
gvanrossum Feb 12, 2022
| https://github.com/python/cpython/pull/31270/commits/0e1355d55509d083ec911995ef2d7837ff888017 |
|
77ec0e4
Add an API to Task to manage 'cancel_requested' flag
gvanrossum Feb 14, 2022
| https://github.com/python/cpython/pull/31270/commits/77ec0e42b3fcd8a928ab89651707d6384971add7 |
|
17b64b5
Add tests for .cancelling() and .uncancel()
gvanrossum Feb 14, 2022
| https://github.com/python/cpython/pull/31270/commits/17b64b54ad9dd929c2ae9250a05354d0c289e949 |
|
5e3f4b9
Merge remote-tracking branch 'origin/main' into taskgroups
gvanrossum Feb 14, 2022
| https://github.com/python/cpython/pull/31270/commits/5e3f4b952eb2dd0139dae19e8858d5cc1397c20e |
|
0b9bccd
📜🤖 Added by blurb_it.
blurb-it[bot] Feb 14, 2022
| https://github.com/python/cpython/pull/31270/commits/0b9bccd71d9b3dc0e05850e7792fa42933696b11 |
|
137ebe6
Replace EdgeDb copyright with a simpler attribution
gvanrossum Feb 15, 2022
| https://github.com/python/cpython/pull/31270/commits/137ebe6de92a3c7995c434e01f0fe501ed441123 |
|
f693c1c
Use task.cancelling() in task repr instead of access to private attri…
asvetlov Feb 15, 2022
| https://github.com/python/cpython/pull/31270/commits/f693c1c989ad732aed0e742a6171c8ef2448068b |
|
b83734c
Change the internal imports
gvanrossum Feb 15, 2022
| https://github.com/python/cpython/pull/31270/commits/b83734cf1efec6cce890c3f3ae65892e1612bb36 |
|
de3d820
Avoid needing self.loop in test
gvanrossum Feb 15, 2022
| https://github.com/python/cpython/pull/31270/commits/de3d82012d3d97bed8ea50e7081404eb51ae8923 |
|
9712241
Make test 14 more robust
gvanrossum Feb 15, 2022
| https://github.com/python/cpython/pull/31270/commits/9712241fed0c203fc6a1612a0040b68fb7779481 |
|
b3d4d18
Update Lib/asyncio/taskgroups.py
Feb 15, 2022
| https://github.com/python/cpython/pull/31270/commits/b3d4d18f04780a88193257d3f62f7f9e284d91a4 |
|
c1e5d64
Update Lib/test/test_asyncio/test_taskgroups.py
Feb 15, 2022
| https://github.com/python/cpython/pull/31270/commits/c1e5d64a27325f3c08668aa5d255038b991bd30e |
|
Clear filters
| https://github.com/python/cpython/pull/31270/files |
| Please reload this page | https://github.com/python/cpython/pull/31270/files |
| Please reload this page | https://github.com/python/cpython/pull/31270/files |
|
__init__.py
| https://github.com/python/cpython/pull/31270/files#diff-6d8c6a7b5cda5773cc40309dcfeeeb120b25857274a13aba8f3c803d25397fdf |
|
base_tasks.py
| https://github.com/python/cpython/pull/31270/files#diff-5eae152b5b94ab82986b91e37d76b9fbb194e533a613131166e292b16774d593 |
|
taskgroups.py
| https://github.com/python/cpython/pull/31270/files#diff-b90f92a0a4d63d1c6e9e82f28f7281db5fd468c356db4309e87c06a65f5606dc |
|
tasks.py
| https://github.com/python/cpython/pull/31270/files#diff-429f4ed1e0f89ea2c92e2a8e8548ea8ae1a3d528979554fbfa4c38329e951529 |
|
test_taskgroups.py
| https://github.com/python/cpython/pull/31270/files#diff-6f3f42fe6cdf1387de256a705e9f0d4c809ba04a2da04c317c9c79cfc4c5bc69 |
|
test_tasks.py
| https://github.com/python/cpython/pull/31270/files#diff-ef1c83c981ac721906ba3b05e123351be23dcfb59e92d0aeb6f4033db9cdd8c8 |
|
2022-02-14-21-21-49.bpo-46752.m6ldTm.rst
| https://github.com/python/cpython/pull/31270/files#diff-14f0d433a1f3aaa4c0cb06b900656f4729c16f74681e812cf12f7baea3839484 |
|
_asynciomodule.c
| https://github.com/python/cpython/pull/31270/files#diff-6bd9e39980b88a721d902bcd915bbb3f24762f7f253430c45e52c42a2c5afd01 |
|
_asynciomodule.c.h
| https://github.com/python/cpython/pull/31270/files#diff-a19e0541aa4b8b56146c5d6e761608df7f2e8afeffaa8c3af930b17f25901a3c |
|
| https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L379 |
| Lib/asyncio/__init__.py | https://github.com/python/cpython/pull/31270/files#diff-6d8c6a7b5cda5773cc40309dcfeeeb120b25857274a13aba8f3c803d25397fdf |
|
View file
| https://github.com/gvanrossum/cpython/blob/c1e5d64a27325f3c08668aa5d255038b991bd30e/Lib/asyncio/__init__.py |
|
Open in desktop
| https://desktop.github.com |
| https://github.co/hiddenchars |
| https://github.com/python/cpython/pull/31270/{{ revealButtonHref }} |
|
| https://github.com/python/cpython/pull/31270/files#diff-6d8c6a7b5cda5773cc40309dcfeeeb120b25857274a13aba8f3c803d25397fdf |
|
| https://github.com/python/cpython/pull/31270/files#diff-6d8c6a7b5cda5773cc40309dcfeeeb120b25857274a13aba8f3c803d25397fdf |
|
| https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L379 |
| Lib/asyncio/base_tasks.py | https://github.com/python/cpython/pull/31270/files#diff-5eae152b5b94ab82986b91e37d76b9fbb194e533a613131166e292b16774d593 |
|
View file
| https://github.com/gvanrossum/cpython/blob/c1e5d64a27325f3c08668aa5d255038b991bd30e/Lib/asyncio/base_tasks.py |
|
Open in desktop
| https://desktop.github.com |
| https://github.co/hiddenchars |
| https://github.com/python/cpython/pull/31270/{{ revealButtonHref }} |
|
| https://github.com/python/cpython/pull/31270/files#diff-5eae152b5b94ab82986b91e37d76b9fbb194e533a613131166e292b16774d593 |
|
| https://github.com/python/cpython/pull/31270/files#diff-5eae152b5b94ab82986b91e37d76b9fbb194e533a613131166e292b16774d593 |
|
| https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L379 |
| Lib/asyncio/taskgroups.py | https://github.com/python/cpython/pull/31270/files#diff-b90f92a0a4d63d1c6e9e82f28f7281db5fd468c356db4309e87c06a65f5606dc |
|
View file
| https://github.com/gvanrossum/cpython/blob/c1e5d64a27325f3c08668aa5d255038b991bd30e/Lib/asyncio/taskgroups.py |
|
Open in desktop
| https://desktop.github.com |
| https://github.co/hiddenchars |
| https://github.com/python/cpython/pull/31270/{{ revealButtonHref }} |
| Please reload this page | https://github.com/python/cpython/pull/31270/files |
| Please reload this page | https://github.com/python/cpython/pull/31270/files |
|
| https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L379 |
| Lib/asyncio/tasks.py | https://github.com/python/cpython/pull/31270/files#diff-429f4ed1e0f89ea2c92e2a8e8548ea8ae1a3d528979554fbfa4c38329e951529 |
|
View file
| https://github.com/gvanrossum/cpython/blob/c1e5d64a27325f3c08668aa5d255038b991bd30e/Lib/asyncio/tasks.py |
|
Open in desktop
| https://desktop.github.com |
| https://github.co/hiddenchars |
| https://github.com/python/cpython/pull/31270/{{ revealButtonHref }} |
|
| https://github.com/python/cpython/pull/31270/files#diff-429f4ed1e0f89ea2c92e2a8e8548ea8ae1a3d528979554fbfa4c38329e951529 |
|
| https://github.com/python/cpython/pull/31270/files#diff-429f4ed1e0f89ea2c92e2a8e8548ea8ae1a3d528979554fbfa4c38329e951529 |
|
| https://github.com/python/cpython/pull/31270/files#diff-429f4ed1e0f89ea2c92e2a8e8548ea8ae1a3d528979554fbfa4c38329e951529 |
|
| https://github.com/python/cpython/pull/31270/files#diff-429f4ed1e0f89ea2c92e2a8e8548ea8ae1a3d528979554fbfa4c38329e951529 |
|
| https://github.com/python/cpython/pull/31270/files#diff-429f4ed1e0f89ea2c92e2a8e8548ea8ae1a3d528979554fbfa4c38329e951529 |
|
| https://github.com/python/cpython/pull/31270/files#diff-429f4ed1e0f89ea2c92e2a8e8548ea8ae1a3d528979554fbfa4c38329e951529 |
|
| https://github.com/python/cpython/pull/31270/files#diff-429f4ed1e0f89ea2c92e2a8e8548ea8ae1a3d528979554fbfa4c38329e951529 |
| Please reload this page | https://github.com/python/cpython/pull/31270/files |
|
| https://github.com |
| Terms | https://docs.github.com/site-policy/github-terms/github-terms-of-service |
| Privacy | https://docs.github.com/site-policy/privacy-policies/github-privacy-statement |
| Security | https://github.com/security |
| Status | https://www.githubstatus.com/ |
| Community | https://github.community/ |
| Docs | https://docs.github.com/ |
| Contact | https://support.github.com?tags=dotcom-footer |