| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:344060af-e8e3-607f-8ef1-b911804ea6c0 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | DC4E:7AC27:12DEB00:1A1DA64:6A4DE622 |
| html-safe-nonce | bba98b6a52f4452b45bb2cf9bac6a84e4c719bfa4813a3638f30ddc84d0aac29 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEQzRFOjdBQzI3OjEyREVCMDA6MUExREE2NDo2QTRERTYyMiIsInZpc2l0b3JfaWQiOiI2OTY1OTIxODYwNDY3NjgwODAyIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 717ce4f8c6fc2ae27da8e2358767838e35c534eb03f18d2bd31413b4184aea66 |
| hovercard-subject-tag | pull_request:156570259 |
| 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/4732/files |
| twitter:image | https://avatars.githubusercontent.com/u/12005495?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/12005495?s=400&v=4 |
| og:image:alt | This is a basic implementation of the PEP. Suggestions are welcome.
@gvanrossum @serhiy-storchaka Can one of you (or both?) please review?
cc: @markshannon IIRC you are interested in implementation... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 06b8a6144231bf3a234f1c2e9993861e07ce98a905912b114aa386c2d7e84b33 |
| 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 | 1d344bdb7547fe6bca17a59bb2b8aac3dc9532a0 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| Skip to content | https://github.com/python/cpython/pull/4732/files#start-of-content |
|
| https://github.com/ |
|
Sign in
| https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F4732%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/sponsors |
| Security Lab | https://securitylab.github.com |
| Maintainer Community | https://maintainers.github.com |
| Accelerator | https://github.com/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/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%2F4732%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/4732/files |
| Reload | https://github.com/python/cpython/pull/4732/files |
| Reload | https://github.com/python/cpython/pull/4732/files |
| Please reload this page | https://github.com/python/cpython/pull/4732/files |
|
python
| https://github.com/python |
| cpython | https://github.com/python/cpython |
| Please reload this page | https://github.com/python/cpython/pull/4732/files |
|
Notifications
| https://github.com/login?return_to=%2Fpython%2Fcpython |
|
Fork
34.8k
| https://github.com/login?return_to=%2Fpython%2Fcpython |
|
Star
73.6k
| 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.3k
| 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 |
| ilevkivskyi | https://github.com/ilevkivskyi |
| python:master | https://github.com/python/cpython/tree/master |
| ilevkivskyi:base-subclass | https://github.com/ilevkivskyi/cpython/tree/base-subclass |
|
Conversation
50
| https://github.com/python/cpython/pull/4732 |
|
Commits
40
| https://github.com/python/cpython/pull/4732/commits |
|
Checks
0
| https://github.com/python/cpython/pull/4732/checks |
|
Files changed
| https://github.com/python/cpython/pull/4732/files |
| Please reload this page | https://github.com/python/cpython/pull/4732/files |
|
bpo-32226: Implementation of PEP 560 (core components)
| https://github.com/python/cpython/pull/4732/files#top |
|
Show all changes
40 commits
| https://github.com/python/cpython/pull/4732/files |
|
26afdc6
POC implementation of __base_subclass__
ilevkivskyi Jul 19, 2017
| https://github.com/python/cpython/pull/4732/commits/26afdc6639a8c03113e4fefae1ff7298eeb161df |
|
3285fb6
POC implementation of __class_getitem__
ilevkivskyi Jul 19, 2017
| https://github.com/python/cpython/pull/4732/commits/3285fb6898739dfb844412f04d7638136e39d747 |
|
779f85d
Modify __base_subclass__ API to support dynamic evaluation and base r…
ilevkivskyi Jul 20, 2017
| https://github.com/python/cpython/pull/4732/commits/779f85dcba319311d788e8aa7e6b87c923bf9935 |
|
5d5211d
Make __base_subclass__ faster and safer
ilevkivskyi Jul 20, 2017
| https://github.com/python/cpython/pull/4732/commits/5d5211d9172660913f5b1507183117d837c26ba3 |
|
41fa7e9
Factor out base update in a separate helper
ilevkivskyi Jul 20, 2017
| https://github.com/python/cpython/pull/4732/commits/41fa7e9ce186efb3953ce99d0094f71f38fdc18f |
|
5aeebab
Formatting
ilevkivskyi Jul 20, 2017
| https://github.com/python/cpython/pull/4732/commits/5aeebab8950d5efc3f2c6c36c3e1e7a78e7d146d |
|
e858ea7
Also make __class_getitem__ safer
ilevkivskyi Jul 20, 2017
| https://github.com/python/cpython/pull/4732/commits/e858ea7501b6bf0ccee2a4afd3104c8b7b6da7bc |
|
5b8d453
Simplify some code
ilevkivskyi Jul 21, 2017
| https://github.com/python/cpython/pull/4732/commits/5b8d45367b2adb0015c37e7d592f00bba32d973a |
|
b3e52f1
Initial work on typing2
ilevkivskyi Jul 22, 2017
| https://github.com/python/cpython/pull/4732/commits/b3e52f12341fb840811cddd03c97e4bfe53ac8fe |
|
6e7b575
Remove test implementation for typing
ilevkivskyi Sep 3, 2017
| https://github.com/python/cpython/pull/4732/commits/6e7b575273aed0a4c5f181fde1825d82d9924b8d |
|
a8437fa
Rename base_subclass to subclass_base
Sep 7, 2017
| https://github.com/python/cpython/pull/4732/commits/a8437fa175c437cede74aadfd3b60cbf0de3fcd6 |
|
c2d8ac2
Start adding tests
Sep 7, 2017
| https://github.com/python/cpython/pull/4732/commits/c2d8ac2f8dd8c53ba6c655544f10b33b957305cd |
|
bc06c6b
Add tests for __subclass_base__
Sep 8, 2017
| https://github.com/python/cpython/pull/4732/commits/bc06c6b3fa22d2ec00c672b386ab808579b691bb |
|
86c5d61
Add tests for __class_getitem__
Sep 8, 2017
| https://github.com/python/cpython/pull/4732/commits/86c5d615fd1c1660a1325300f3e0199c6a276225 |
|
2cef78a
Fix trailing whitespace
ilevkivskyi Sep 9, 2017
| https://github.com/python/cpython/pull/4732/commits/2cef78ae92353ca667730d2a1d7a81f36f9501a9 |
|
b9bbf7c
Alternative implementation of __class_getitem__
ilevkivskyi Sep 10, 2017
| https://github.com/python/cpython/pull/4732/commits/b9bbf7c569027cc9bd16d731683a08ea3838ecde |
|
2495e94
Simplify code and fix reference counting
ilevkivskyi Sep 10, 2017
| https://github.com/python/cpython/pull/4732/commits/2495e942c7f90ff7b2292ef44ec5d82bf2281619 |
|
9ca8dfc
Rename __base_subclass__ to __mro_entry__
ilevkivskyi Nov 11, 2017
| https://github.com/python/cpython/pull/4732/commits/9ca8dfca2357d5f1556966c23f346b6d609b98c1 |
|
74bd36f
Add types.resolve_bases
ilevkivskyi Nov 11, 2017
| https://github.com/python/cpython/pull/4732/commits/74bd36f8a4cbcb4bc822a56dab701c58fe77f2ec |
|
6f20c45
Make Python and C versions as similar as possible
ilevkivskyi Nov 11, 2017
| https://github.com/python/cpython/pull/4732/commits/6f20c4518bc4220f8f71ca9725e084ddbf976d2b |
|
bcfbcf6
More tests
ilevkivskyi Nov 11, 2017
| https://github.com/python/cpython/pull/4732/commits/bcfbcf60fc9db8cbf09e1c308aa64bc8126be727 |
|
d7bd630
Fail fast in type.__new__
ilevkivskyi Nov 11, 2017
| https://github.com/python/cpython/pull/4732/commits/d7bd63080d25ca50fcd1101839dea0202ad7d0c2 |
|
29e54c3
Fix a test
ilevkivskyi Nov 11, 2017
| https://github.com/python/cpython/pull/4732/commits/29e54c334dc00427644db08fdad2a73bcb2dc8bd |
|
cba2a58
Test error message
ilevkivskyi Nov 11, 2017
| https://github.com/python/cpython/pull/4732/commits/cba2a58f8417fa44993c5a5f6113b6476875cb4f |
|
966a9ea
Test error message
ilevkivskyi Nov 11, 2017
| https://github.com/python/cpython/pull/4732/commits/966a9ea754e38b34a97b55a7e4b7b46d75cccbcd |
|
734c7e9
Test error message
ilevkivskyi Nov 11, 2017
| https://github.com/python/cpython/pull/4732/commits/734c7e9a79796c6f2f685bde1de188ff0b439446 |
|
152d2f6
Allow expansion to multiple bases
Nov 13, 2017
| https://github.com/python/cpython/pull/4732/commits/152d2f6352d3eb70b3b364d4ee020b1bd126663e |
|
1a218e0
Prohibit returning non-tuple
ilevkivskyi Nov 14, 2017
| https://github.com/python/cpython/pull/4732/commits/1a218e0c42faa7e8d9b34795dc6e3f2f4ccd5fb0 |
|
7cc8d8f
Rename to __mro_entries__
ilevkivskyi Nov 14, 2017
| https://github.com/python/cpython/pull/4732/commits/7cc8d8ff0b1f54bbb4ecb131098e74afedf95032 |
|
57f477c
Merge remote-tracking branch 'upstream/master' into base-subclass
ilevkivskyi Dec 5, 2017
| https://github.com/python/cpython/pull/4732/commits/57f477cebee6eea8403cf4fa820c1e7beaacf862 |
|
d0c0889
Add news entry
ilevkivskyi Dec 5, 2017
| https://github.com/python/cpython/pull/4732/commits/d0c088950096ad7843d976d99142804fc5214314 |
|
bfea2f0
Fix indentation and refleak
ilevkivskyi Dec 6, 2017
| https://github.com/python/cpython/pull/4732/commits/bfea2f02fa3146f76e3b16a1f45fa2111e2e2f21 |
|
978588c
Address CR (part 1)
ilevkivskyi Dec 8, 2017
| https://github.com/python/cpython/pull/4732/commits/978588ca1d79ea5941f17c2bc3c71477ca59f979 |
|
7bff68d
Address CR (part 2) use a temporary tuple instead of modifying args i…
ilevkivskyi Dec 8, 2017
| https://github.com/python/cpython/pull/4732/commits/7bff68d365889a83eb415d590ef09102a6666ac4 |
|
b3d85ff
Remove checks for callability of special methods
ilevkivskyi Dec 10, 2017
| https://github.com/python/cpython/pull/4732/commits/b3d85ff6ebf117ce0008cedb2813da3d1203c4a0 |
|
687e1e7
Some simplifications
ilevkivskyi Dec 11, 2017
| https://github.com/python/cpython/pull/4732/commits/687e1e7ca29134141fcac758dd487384015a0d90 |
|
4426e8c
More simplifications: use single pass
ilevkivskyi Dec 12, 2017
| https://github.com/python/cpython/pull/4732/commits/4426e8cfbdf36ed01c1704494fbdde33e052402b |
|
b7d28d8
Some fixes + performance
ilevkivskyi Dec 12, 2017
| https://github.com/python/cpython/pull/4732/commits/b7d28d839540d5bc3ff095d80b9627e6cb8ec6ff |
|
dce0218
Merge remote-tracking branch 'upstream/master' into base-subclass
ilevkivskyi Dec 12, 2017
| https://github.com/python/cpython/pull/4732/commits/dce0218b9120c5d62b37976e8f5e64b8661a1f9c |
|
caf9238
Re-organize code and fix formatting
Dec 12, 2017
| https://github.com/python/cpython/pull/4732/commits/caf923898257a51b2c3c6575c98ae4a1e25738b5 |
|
Clear filters
| https://github.com/python/cpython/pull/4732/files |
| Please reload this page | https://github.com/python/cpython/pull/4732/files |
| Please reload this page | https://github.com/python/cpython/pull/4732/files |
|
test_genericclass.py
| https://github.com/python/cpython/pull/4732/files#diff-bc4d79d00c71f66527a154e1a23e533790c055d12322f4f20a22c9b93cf0a12b |
|
test_types.py
| https://github.com/python/cpython/pull/4732/files#diff-d5154ccf7a97612e4a8b06a6f0f48f15554e426e72e698f246d17d3dd8e3a75a |
|
types.py
| https://github.com/python/cpython/pull/4732/files#diff-14c8ad728bd63143566c2c1e5a85a7b20cebc910278ac9202978e845dc63f215 |
|
2017-12-05-21-42-58.bpo-32226.G8fqb6.rst
| https://github.com/python/cpython/pull/4732/files#diff-0b94d2708f751ef610ecd5c5a0b0b5db2c3b7545dff185eec42f3e87f623f854 |
|
abstract.c
| https://github.com/python/cpython/pull/4732/files#diff-d2c90d06d281ca8dd7ac8b90109fc26755f7319dd209b5f9416efdecfa56e289 |
|
typeobject.c
| https://github.com/python/cpython/pull/4732/files#diff-1decebeef15f4e0b0ce106c665751ec55068d4d1d1825847925ad4f528b5b872 |
|
bltinmodule.c
| https://github.com/python/cpython/pull/4732/files#diff-e4fd8b8ee6a147f86c0719ff122aca6dfca36edbd4812c87892698b3b72e40a1 |
| Lib/test/test_genericclass.py | https://github.com/python/cpython/pull/4732/files#diff-bc4d79d00c71f66527a154e1a23e533790c055d12322f4f20a22c9b93cf0a12b |
|
View file
| https://github.com/ilevkivskyi/cpython/blob/caf923898257a51b2c3c6575c98ae4a1e25738b5/Lib/test/test_genericclass.py |
|
Open in desktop
| https://desktop.github.com |
| https://github.co/hiddenchars |
| https://github.com/python/cpython/pull/4732/{{ revealButtonHref }} |
| Lib/test/test_types.py | https://github.com/python/cpython/pull/4732/files#diff-d5154ccf7a97612e4a8b06a6f0f48f15554e426e72e698f246d17d3dd8e3a75a |
|
View file
| https://github.com/ilevkivskyi/cpython/blob/caf923898257a51b2c3c6575c98ae4a1e25738b5/Lib/test/test_types.py |
|
Open in desktop
| https://desktop.github.com |
| https://github.co/hiddenchars |
| https://github.com/python/cpython/pull/4732/{{ revealButtonHref }} |
|
| https://github.com/python/cpython/pull/4732/files#diff-d5154ccf7a97612e4a8b06a6f0f48f15554e426e72e698f246d17d3dd8e3a75a |
|
| https://github.com/python/cpython/pull/4732/files#diff-d5154ccf7a97612e4a8b06a6f0f48f15554e426e72e698f246d17d3dd8e3a75a |
|
| https://github.com/python/cpython/pull/4732/files#diff-d5154ccf7a97612e4a8b06a6f0f48f15554e426e72e698f246d17d3dd8e3a75a |
|
| https://github.com/python/cpython/pull/4732/files#diff-d5154ccf7a97612e4a8b06a6f0f48f15554e426e72e698f246d17d3dd8e3a75a |
| Lib/types.py | https://github.com/python/cpython/pull/4732/files#diff-14c8ad728bd63143566c2c1e5a85a7b20cebc910278ac9202978e845dc63f215 |
|
View file
| https://github.com/ilevkivskyi/cpython/blob/caf923898257a51b2c3c6575c98ae4a1e25738b5/Lib/types.py |
|
Open in desktop
| https://desktop.github.com |
| https://github.co/hiddenchars |
| https://github.com/python/cpython/pull/4732/{{ revealButtonHref }} |
|
| https://github.com/python/cpython/pull/4732/files#diff-14c8ad728bd63143566c2c1e5a85a7b20cebc910278ac9202978e845dc63f215 |
|
| https://github.com/python/cpython/pull/4732/files#diff-14c8ad728bd63143566c2c1e5a85a7b20cebc910278ac9202978e845dc63f215 |
| Misc/NEWS.d/next/Core and Builtins/2017-12-05-21-42-58.bpo-32226.G8fqb6.rst | https://github.com/python/cpython/pull/4732/files#diff-0b94d2708f751ef610ecd5c5a0b0b5db2c3b7545dff185eec42f3e87f623f854 |
|
View file
| https://github.com/ilevkivskyi/cpython/blob/caf923898257a51b2c3c6575c98ae4a1e25738b5/Misc/NEWS.d/next/Core%20and%20Builtins/2017-12-05-21-42-58.bpo-32226.G8fqb6.rst |
|
Open in desktop
| https://desktop.github.com |
| https://github.co/hiddenchars |
| https://github.com/python/cpython/pull/4732/{{ revealButtonHref }} |
| Please reload this page | https://github.com/python/cpython/pull/4732/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 |