René's URL Explorer Experiment


Title: gh-102433: Use `inspect.getattr_static` in `typing._ProtocolMeta.__instancecheck__` by AlexWaygood · Pull Request #103034 · python/cpython · GitHub

Open Graph Title: gh-102433: Use `inspect.getattr_static` in `typing._ProtocolMeta.__instancecheck__` by AlexWaygood · Pull Request #103034 · python/cpython

X Title: gh-102433: Use `inspect.getattr_static` in `typing._ProtocolMeta.__instancecheck__` by AlexWaygood · Pull Request #103034 · python/cpython

Description: Use getattr_static rather than hasattr in _ProtocolMeta.__instancecheck__, in order to avoid unexpectedly evaluating descriptors and __getattr__ methods in the process of calling isinstance() again...

Open Graph Description: Use getattr_static rather than hasattr in _ProtocolMeta.__instancecheck__, in order to avoid unexpectedly evaluating descriptors and __getattr__ methods in the process of calling isinstance() again...

X Description: Use getattr_static rather than hasattr in _ProtocolMeta.__instancecheck__, in order to avoid unexpectedly evaluating descriptors and __getattr__ methods in the process of calling isinstance() again...

Opengraph URL: https://github.com/python/cpython/pull/103034

X: @github

direct link

Domain: github.com

route-pattern/_view_fragments/voltron/pull_requests/show/:user_id/:repository/:id/pull_request_layout(.:format)
route-controllervoltron_pull_requests_fragments
route-actionpull_request_layout
fetch-noncev2:6d7bb0ec-9194-e525-d60c-201332711d95
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idB390:111C42:FCD8DA:1510E97:696991BB
html-safe-noncedc8e0d185ec6484a2624d484ac1a8c02c5a920c9f482604f0cce328b661a2a16
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCMzkwOjExMUM0MjpGQ0Q4REE6MTUxMEU5Nzo2OTY5OTFCQiIsInZpc2l0b3JfaWQiOiI0MjQ3NTk4NDIwMDI1Mzg5MzkiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmacac9061ec1705801ecfddd705ec657fa9594970d68e558649f7edf94133a72cff
hovercard-subject-tagpull_request:1290088688
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/pull_requests_fragments/pull_request_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/voltron/pull_requests/show/python/cpython/103034/pull_request_layout
twitter:imagehttps://opengraph.githubassets.com/7da9c67eaee916804deb81ebe499f1f2b27b52b3762885d282746c736302c19b/python/cpython/pull/103034
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/7da9c67eaee916804deb81ebe499f1f2b27b52b3762885d282746c736302c19b/python/cpython/pull/103034
og:image:altUse getattr_static rather than hasattr in _ProtocolMeta.__instancecheck__, in order to avoid unexpectedly evaluating descriptors and __getattr__ methods in the process of calling isinstance() again...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernameAlexWaygood
hostnamegithub.com
expected-hostnamegithub.com
None3542e147982176a7ebaa23dfb559c8af16f721c03ec560c68c56b64a0f35e751
turbo-cache-controlno-preview
go-importgithub.com/python/cpython git https://github.com/python/cpython.git
octolytics-dimension-user_id1525981
octolytics-dimension-user_loginpython
octolytics-dimension-repository_id81598961
octolytics-dimension-repository_nwopython/cpython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id81598961
octolytics-dimension-repository_network_root_nwopython/cpython
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releaseaf80af7cc9e3de9c336f18b208a600950a3c187c
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/103034#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F103034
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://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%2F103034
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%2Fvoltron%2Fpull_requests_fragments%2Fpull_request_layout&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/pull/103034
Reloadhttps://github.com/python/cpython/pull/103034
Reloadhttps://github.com/python/cpython/pull/103034
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/103034
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 33.9k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 71.1k 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.1k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects 31 https://github.com/python/cpython/projects
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/python/cpython/security
Please reload this pagehttps://github.com/python/cpython/pull/103034
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 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 servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
Jump to bottomhttps://github.com/python/cpython/pull/103034#issue-comment-box
AlexWaygoodhttps://github.com/AlexWaygood
python:mainhttps://github.com/python/cpython/tree/main
AlexWaygood:runtime-protocols-getattr_statichttps://github.com/AlexWaygood/cpython/tree/runtime-protocols-getattr_static
gh-102433: Use inspect.getattr_static in typing._ProtocolMeta.__instancecheck__ https://github.com/python/cpython/pull/103034#top
AlexWaygoodhttps://github.com/AlexWaygood
python:mainhttps://github.com/python/cpython/tree/main
AlexWaygood:runtime-protocols-getattr_statichttps://github.com/AlexWaygood/cpython/tree/runtime-protocols-getattr_static
Conversation 22 https://github.com/python/cpython/pull/103034
Commits 11 https://github.com/python/cpython/pull/103034/commits
Checks 0 https://github.com/python/cpython/pull/103034/checks
Files changed https://github.com/python/cpython/pull/103034/files
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.co/hiddenchars
https://github.com/python/cpython/pull/{{ revealButtonHref }}
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
Mar 25, 2023https://github.com/python/cpython/pull/103034#issue-1640588419
Please reload this pagehttps://github.com/python/cpython/pull/103034
python/typing#1363https://github.com/python/typing/issues/1363
Typing: Document performance pitfalls of protocols decorated with @runtime_checkable #102936https://github.com/python/cpython/issues/102936
isinstance on runtime_checkable Protocol has side-effects for @property methods #102433https://github.com/python/cpython/issues/102433
How should isinstance() work at runtime when comparing classes with properties against runtime-checkable protocols? typing#1363https://github.com/python/typing/issues/1363
Please reload this pagehttps://github.com/python/cpython/pull/103034
AlexWaygoodhttps://github.com/AlexWaygood
March 24, 2023 19:50https://github.com/python/cpython/pull/103034#commits-pushed-212fce2
https://github.com/AlexWaygood
Implementationhttps://github.com/python/cpython/pull/103034/commits/212fce296424db5ea809d0fcadd31e47dc3b9888
212fce2https://github.com/python/cpython/pull/103034/commits/212fce296424db5ea809d0fcadd31e47dc3b9888
https://github.com/AlexWaygood
Testshttps://github.com/python/cpython/pull/103034/commits/ef713954946720ba28d194f73985667798712688
ef71395https://github.com/python/cpython/pull/103034/commits/ef713954946720ba28d194f73985667798712688
https://github.com/AlexWaygood
docshttps://github.com/python/cpython/pull/103034/commits/4407d604ab223cedb5e2065147270be421f0c464
4407d60https://github.com/python/cpython/pull/103034/commits/4407d604ab223cedb5e2065147270be421f0c464
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
carljmhttps://github.com/carljm
March 25, 2023 17:08https://github.com/python/cpython/pull/103034#event-8845706294
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
Fidget-Spinnerhttps://github.com/Fidget-Spinner
JelleZijlstrahttps://github.com/JelleZijlstra
gvanrossumhttps://github.com/gvanrossum
code ownershttps://github.com/python/cpython/blob/0708437ad043657f992cb985fd5c37e1ac052f93/.github/CODEOWNERS#L141
March 25, 2023 17:08https://github.com/python/cpython/pull/103034#event-8845706308
https://github.com/bedevere-bot
bedevere-bothttps://github.com/bedevere-bot
Mar 25, 2023 https://github.com/python/cpython/pull/103034#ref-issue-1603887215
implement winreg QueryValue / SetValue using QueryValueEx / SetValueEx #102344 https://github.com/python/cpython/issues/102344
https://github.com/bedevere-bot
bedevere-bothttps://github.com/bedevere-bot
awaiting core review https://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22awaiting%20core%20review%22
Mar 25, 2023https://github.com/python/cpython/pull/103034#event-8845706448
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
Mar 25, 2023https://github.com/python/cpython/pull/103034#event-8845706838
https://github.com/bedevere-bot
bedevere-bothttps://github.com/bedevere-bot
Mar 25, 2023 https://github.com/python/cpython/pull/103034#ref-issue-1610043426
isinstance on runtime_checkable Protocol has side-effects for @property methods #102433 https://github.com/python/cpython/issues/102433
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
topic-typing https://github.com/python/cpython/issues?q=state%3Aopen%20label%3Atopic-typing
3.12 https://github.com/python/cpython/issues?q=state%3Aopen%20label%3A3.12
stdlib https://github.com/python/cpython/issues?q=state%3Aopen%20label%3Astdlib
Mar 25, 2023https://github.com/python/cpython/pull/103034#event-8845708647
https://github.com/AlexWaygood
Wrong issue numberhttps://github.com/python/cpython/pull/103034/commits/44eba6b3142d15fcb65f1af6976b3276e5885270
44eba6bhttps://github.com/python/cpython/pull/103034/commits/44eba6b3142d15fcb65f1af6976b3276e5885270
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
Mar 25, 2023 https://github.com/python/cpython/pull/103034#ref-issue-1611672358
How should isinstance() work at runtime when comparing classes with properties against runtime-checkable protocols? python/typing#1363 https://github.com/python/typing/issues/1363
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
Mar 25, 2023https://github.com/python/cpython/pull/103034#issuecomment-1483879312
Please reload this pagehttps://github.com/python/cpython/pull/103034
@samuelcolvinhttps://github.com/samuelcolvin
@Tinchehttps://github.com/Tinche
@leycechttps://github.com/leycec
@agronholmhttps://github.com/agronholm
@tiangolohttps://github.com/tiangolo
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/gvanrossum
gvanrossumhttps://github.com/gvanrossum
Mar 25, 2023https://github.com/python/cpython/pull/103034#issuecomment-1483922610
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/gvanrossum
gvanrossumhttps://github.com/gvanrossum
March 25, 2023 21:09https://github.com/python/cpython/pull/103034#event-8846026016
https://github.com/samuelcolvin
samuelcolvinhttps://github.com/samuelcolvin
Mar 25, 2023https://github.com/python/cpython/pull/103034#issuecomment-1483923584
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/leycec
leycechttps://github.com/leycec
Mar 26, 2023https://github.com/python/cpython/pull/103034#issuecomment-1483956672
@AlexWaygoodhttps://github.com/AlexWaygood
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/Tinche
Tinchehttps://github.com/Tinche
Mar 26, 2023https://github.com/python/cpython/pull/103034#issuecomment-1483966246
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
Mar 26, 2023https://github.com/python/cpython/pull/103034#issuecomment-1484105664
Please reload this pagehttps://github.com/python/cpython/pull/103034
@leycechttps://github.com/leycec
python/typing#1363https://github.com/python/typing/issues/1363
python/typing#1363 (comment)https://github.com/python/typing/issues/1363#issuecomment-1459079178
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
Mar 26, 2023https://github.com/python/cpython/pull/103034#issuecomment-1484106489
Please reload this pagehttps://github.com/python/cpython/pull/103034
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/agronholm
agronholmhttps://github.com/agronholm
Mar 26, 2023https://github.com/python/cpython/pull/103034#issuecomment-1484126596
Please reload this pagehttps://github.com/python/cpython/pull/103034
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/AlexWaygood
Merge branch 'main' into runtime-protocols-getattr_statichttps://github.com/python/cpython/pull/103034/commits/9989eea363a1bd09ce1892b17704b631228caac9
9989eeahttps://github.com/python/cpython/pull/103034/commits/9989eea363a1bd09ce1892b17704b631228caac9
https://github.com/samuelcolvin
samuelcolvinhttps://github.com/samuelcolvin
Mar 27, 2023https://github.com/python/cpython/pull/103034#issuecomment-1484899502
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
Mar 27, 2023https://github.com/python/cpython/pull/103034#issuecomment-1484910588
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/agronholm
agronholmhttps://github.com/agronholm
Mar 27, 2023https://github.com/python/cpython/pull/103034#issuecomment-1484913692
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/carljm
carljmhttps://github.com/carljm
Mar 27, 2023https://github.com/python/cpython/pull/103034#issuecomment-1485805106
@agronholmhttps://github.com/agronholm
Please reload this pagehttps://github.com/python/cpython/pull/103034
AlexWaygoodhttps://github.com/AlexWaygood
April 2, 2023 13:44https://github.com/python/cpython/pull/103034#commits-pushed-83d7ec2
https://github.com/AlexWaygood
Merge branch 'main' into runtime-protocols-getattr_statichttps://github.com/python/cpython/pull/103034/commits/83d7ec2cff85a8d0be9920ac511cbae233254537
83d7ec2https://github.com/python/cpython/pull/103034/commits/83d7ec2cff85a8d0be9920ac511cbae233254537
https://github.com/AlexWaygood
Simplify and optimisehttps://github.com/python/cpython/pull/103034/commits/6ba97e71b14c86ce703fc38feacb3cff48b4785a
6ba97e7https://github.com/python/cpython/pull/103034/commits/6ba97e71b14c86ce703fc38feacb3cff48b4785a
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
Apr 2, 2023https://github.com/python/cpython/pull/103034#issuecomment-1493328377
gh-74690: typing: Don't unnecessarily call _get_protocol_attrs twice in _ProtocolMeta.__instancecheck__ #103141https://github.com/python/cpython/pull/103141
gh-74690: Micro-optimise typing._get_protocol_attrs #103152https://github.com/python/cpython/pull/103152
gh-74690: typing: Simplify and optimise _ProtocolMeta.__instancecheck__ #103159https://github.com/python/cpython/pull/103159
gh-74690: typing: Call _get_protocol_attrs and _callable_members_only at protocol class creation time, not during isinstance() checks #103160https://github.com/python/cpython/pull/103160
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
6d59c9ehttps://github.com/python/cpython/commit/6d59c9e32ebb6d8468c7eb26e7cf3efd458c7a73
Apr 2, 2023https://github.com/python/cpython/pull/103034#event-8906419771
https://github.com/bedevere-bot
bedevere-bothttps://github.com/bedevere-bot
awaiting merge https://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22awaiting%20merge%22
Apr 2, 2023https://github.com/python/cpython/pull/103034#event-8906419877
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
April 2, 2023 13:22https://github.com/python/cpython/pull/103034#event-8906419929
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
Apr 2, 2023https://github.com/python/cpython/pull/103034#issuecomment-1493335947
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
Apr 2, 2023 https://github.com/python/cpython/pull/103034#ref-pullrequest-1650156643
gh-74690: typing: Simplify and optimise _ProtocolMeta.__instancecheck__ #103159 https://github.com/python/cpython/pull/103159
https://github.com/tiangolo
tiangolohttps://github.com/tiangolo
Apr 2, 2023https://github.com/python/cpython/pull/103034#issuecomment-1493369219
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
Apr 5, 2023 https://github.com/python/cpython/pull/103034#ref-pullrequest-1655797096
gh-74690: Further optimise typing._ProtocolMeta.__instancecheck__ #103280 https://github.com/python/cpython/pull/103280
gaogaotiantianhttps://github.com/gaogaotiantian
Apr 8, 2023 https://github.com/python/cpython/pull/103034#ref-commit-3a0530c
https://github.com/AlexWaygood
https://github.com/gaogaotiantian
pythongh-102433https://github.com/python/cpython/issues/102433
: Usehttps://github.com/gaogaotiantian/cpython/commit/3a0530c2bc600b1504f7b3ae28855b3faa460487
inspect.getattr_statichttps://github.com/gaogaotiantian/cpython/commit/3a0530c2bc600b1504f7b3ae28855b3faa460487
in `typing._ProtocolMet…https://github.com/gaogaotiantian/cpython/commit/3a0530c2bc600b1504f7b3ae28855b3faa460487
3a0530chttps://github.com/gaogaotiantian/cpython/commit/3a0530c2bc600b1504f7b3ae28855b3faa460487
python#103034https://github.com/python/cpython/pull/103034
warsawhttps://github.com/warsaw
Apr 11, 2023 https://github.com/python/cpython/pull/103034#ref-commit-c3c6139
https://github.com/AlexWaygood
https://github.com/warsaw
pythongh-102433https://github.com/python/cpython/issues/102433
: Usehttps://github.com/warsaw/cpython/commit/c3c6139ac04a965326c73d81702f7923639b8fde
inspect.getattr_statichttps://github.com/warsaw/cpython/commit/c3c6139ac04a965326c73d81702f7923639b8fde
in `typing._ProtocolMet…https://github.com/warsaw/cpython/commit/c3c6139ac04a965326c73d81702f7923639b8fde
c3c6139https://github.com/warsaw/cpython/commit/c3c6139ac04a965326c73d81702f7923639b8fde
python#103034https://github.com/python/cpython/pull/103034
Backport performance improvements to runtime-checkable protocols python/typing_extensions#137 https://github.com/python/typing_extensions/pull/137
Backport use of getattr_static for _ProtocolMeta.__instancecheck__? python/typing_extensions#139 https://github.com/python/typing_extensions/issues/139
Use inspect.getattr_static in _ProtocolMeta.__instancecheck__ python/typing_extensions#140 https://github.com/python/typing_extensions/pull/140
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
May 24, 2023 https://github.com/python/cpython/pull/103034#ref-issue-1723200108
[Bug] typing_extensions.Protocol unsupported under typing_extensions ≥ 4.6.0 beartype/beartype#241 https://github.com/beartype/beartype/issues/241
typing_extensions >= 4.6.0 causes pip unit test failure tensorflow/tensorflow#60687 https://github.com/tensorflow/tensorflow/issues/60687
runtime checkable protocols potential raising error with custom getattribute #105134 https://github.com/python/cpython/issues/105134
krajhttps://github.com/kraj
Jun 1, 2023 https://github.com/python/cpython/pull/103034#ref-commit-d66bbb5
https://github.com/wangmingyu84
https://github.com/alexandrebelloni
python3-typing-extensions: upgrade 4.5.0 -> 4.6.2https://github.com/YoeDistro/poky/commit/d66bbb56a51c1f3b16fc227d78bc1cf8cd45c8bb
d66bbb5https://github.com/YoeDistro/poky/commit/d66bbb56a51c1f3b16fc227d78bc1cf8cd45c8bb
@deprecatedhttps://github.com/deprecated
@runtimehttps://github.com/runtime
https://typing-extensions.readthedocs.io/en/latest/https://typing-extensions.readthedocs.io/en/latest/
python/cpython#23294https://github.com/python/cpython/pull/23294
python/cpython#23383https://github.com/python/cpython/pull/23383
python/cpython#74690https://github.com/python/cpython/issues/74690
python/cpython#103034https://github.com/python/cpython/pull/103034
python/cpython#31628https://github.com/python/cpython/pull/31628
python/cpython#101827https://github.com/python/cpython/pull/101827
python/cpython#104048https://github.com/python/cpython/pull/104048
rpurdiehttps://github.com/rpurdie
Jun 2, 2023 https://github.com/python/cpython/pull/103034#ref-commit-674b2c8
https://github.com/wangmingyu84
https://github.com/rpurdie
python3-typing-extensions: upgrade 4.5.0 -> 4.6.2https://github.com/yoctoproject/poky/commit/674b2c8b77604caf779a0ee27c7b0fe0da990b40
674b2c8https://github.com/yoctoproject/poky/commit/674b2c8b77604caf779a0ee27c7b0fe0da990b40
@deprecatedhttps://github.com/deprecated
@runtimehttps://github.com/runtime
https://typing-extensions.readthedocs.io/en/latest/https://typing-extensions.readthedocs.io/en/latest/
python/cpython#23294https://github.com/python/cpython/pull/23294
python/cpython#23383https://github.com/python/cpython/pull/23383
python/cpython#74690https://github.com/python/cpython/issues/74690
python/cpython#103034https://github.com/python/cpython/pull/103034
python/cpython#31628https://github.com/python/cpython/pull/31628
python/cpython#101827https://github.com/python/cpython/pull/101827
python/cpython#104048https://github.com/python/cpython/pull/104048
halsteadhttps://github.com/halstead
Jun 2, 2023 https://github.com/python/cpython/pull/103034#ref-commit-a37154b
https://github.com/wangmingyu84
https://github.com/rpurdie
python3-typing-extensions: upgrade 4.5.0 -> 4.6.2https://github.com/openembedded/openembedded-core/commit/a37154b9166323d05cca970ebb37bee0d5250893
a37154bhttps://github.com/openembedded/openembedded-core/commit/a37154b9166323d05cca970ebb37bee0d5250893
@deprecatedhttps://github.com/deprecated
@runtimehttps://github.com/runtime
https://typing-extensions.readthedocs.io/en/latest/https://typing-extensions.readthedocs.io/en/latest/
python/cpython#23294https://github.com/python/cpython/pull/23294
python/cpython#23383https://github.com/python/cpython/pull/23383
python/cpython#74690https://github.com/python/cpython/issues/74690
python/cpython#103034https://github.com/python/cpython/pull/103034
python/cpython#31628https://github.com/python/cpython/pull/31628
python/cpython#101827https://github.com/python/cpython/pull/101827
python/cpython#104048https://github.com/python/cpython/pull/104048
renovatehttps://github.com/apps/renovate
Jun 3, 2023 https://github.com/python/cpython/pull/103034#ref-commit-b61076e
https://github.com/marketplace/renovate
Update dependency typing-extensions to v4.6.3 (https://github.com/allenporter/flux-local/commit/b61076e33f0faf1df2e35f58c9904d55b9165e78
#224https://github.com/allenporter/flux-local/pull/224
)https://github.com/allenporter/flux-local/commit/b61076e33f0faf1df2e35f58c9904d55b9165e78
b61076ehttps://github.com/allenporter/flux-local/commit/b61076e33f0faf1df2e35f58c9904d55b9165e78
https://app.renovatebot.com/images/banner.svg)](https://renovatebot.comhttps://app.renovatebot.com/images/banner.svg)](https://renovatebot.com
https://togithub.com/python/typing_extensionshttps://togithub.com/python/typing_extensions
https://togithub.com/python/typing_extensions/blob/main/CHANGELOG.mdhttps://togithub.com/python/typing_extensions/blob/main/CHANGELOG.md
https://badges.renovateapi.com/packages/pypi/typing-extensions/4.6.3/age-slim)](https://docs.renovatebot.com/merge-confidence/https://badges.renovateapi.com/packages/pypi/typing-extensions/4.6.3/age-slim)](https://docs.renovatebot.com/merge-confidence/
https://badges.renovateapi.com/packages/pypi/typing-extensions/4.6.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/https://badges.renovateapi.com/packages/pypi/typing-extensions/4.6.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/
https://badges.renovateapi.com/packages/pypi/typing-extensions/4.6.3/compatibility-slim/4.5.0)](https://docs.renovatebot.com/merge-confidence/https://badges.renovateapi.com/packages/pypi/typing-extensions/4.6.3/compatibility-slim/4.5.0)](https://docs.renovatebot.com/merge-confidence/
https://badges.renovateapi.com/packages/pypi/typing-extensions/4.6.3/confidence-slim/4.5.0)](https://docs.renovatebot.com/merge-confidence/https://badges.renovateapi.com/packages/pypi/typing-extensions/4.6.3/confidence-slim/4.5.0)](https://docs.renovatebot.com/merge-confidence/
https://togithub.com/python/typing_extensions/blob/HEAD/CHANGELOG.md#Release-463-June-1-2023https://togithub.com/python/typing_extensions/blob/HEAD/CHANGELOG.md#Release-463-June-1-2023
https://togithub.com/python/typing_extensions/compare/4.6.2...4.6.3https://togithub.com/python/typing_extensions/compare/4.6.2...4.6.3
https://github.com/python/cpython/pull/105152](https://togithub.com/python/cpython/pull/105152)l/105152https://github.com/python/cpython/pull/105152](https://togithub.com/python/cpython/pull/105152)l/105152
https://togithub.com/python/typing_extensions/blob/HEAD/CHANGELOG.md#Release-462-May-25-2023https://togithub.com/python/typing_extensions/blob/HEAD/CHANGELOG.md#Release-462-May-25-2023
https://togithub.com/python/typing_extensions/compare/4.6.1...4.6.2https://togithub.com/python/typing_extensions/compare/4.6.1...4.6.2
https://togithub.com/python/typing_extensions/blob/HEAD/CHANGELOG.md#Release-461-May-23-2023https://togithub.com/python/typing_extensions/blob/HEAD/CHANGELOG.md#Release-461-May-23-2023
https://togithub.com/python/typing_extensions/compare/4.6.0...4.6.1https://togithub.com/python/typing_extensions/compare/4.6.0...4.6.1
https://togithub.com/python/typing_extensions/blob/HEAD/CHANGELOG.md#Release-460-May-22-2023https://togithub.com/python/typing_extensions/blob/HEAD/CHANGELOG.md#Release-460-May-22-2023
https://togithub.com/python/typing_extensions/compare/4.5.0...4.6.0https://togithub.com/python/typing_extensions/compare/4.5.0...4.6.0
https://typing-extensions.readthedocs.io/en/latest/https://typing-extensions.readthedocs.io/en/latest/
https://github.com/python/cpython/pull/23294](https://togithub.com/python/cpython/pull/23294)3294https://github.com/python/cpython/pull/23294](https://togithub.com/python/cpython/pull/23294)3294
https://github.com/python/cpython/pull/23383](https://togithub.com/python/cpython/pull/23383)ll/23383https://github.com/python/cpython/pull/23383](https://togithub.com/python/cpython/pull/23383)ll/23383
https://github.com/python/cpython/pull/29334](https://togithub.com/python/cpython/pull/29334)9334https://github.com/python/cpython/pull/29334](https://togithub.com/python/cpython/pull/29334)9334
https://togithub.com/python/cpython/pull/26067https://togithub.com/python/cpython/pull/26067
https://github.com/python/cpython/issues/74690](https://togithub.com/python/cpython/issues/74690)es/74690https://github.com/python/cpython/issues/74690](https://togithub.com/python/cpython/issues/74690)es/74690
https://docs.python.org/3.12/whatsnew/3.12.html#typinghttps://docs.python.org/3.12/whatsnew/3.12.html#typing
https://github.com/python/cpython/pull/103034](https://togithub.com/python/cpython/pull/103034)3034https://github.com/python/cpython/pull/103034](https://togithub.com/python/cpython/pull/103034)3034
https://github.com/python/cpython/pull/31628](https://togithub.com/python/cpython/pull/31628)ll/31628https://github.com/python/cpython/pull/31628](https://togithub.com/python/cpython/pull/31628)ll/31628
https://docs.python.org/3.12/library/types.html#types.get_original_baseshttps://docs.python.org/3.12/library/types.html#types.get_original_bases
https://github.com/python/cpython/pull/101827](https://togithub.com/python/cpython/pull/101827)l/101827https://github.com/python/cpython/pull/101827](https://togithub.com/python/cpython/pull/101827)l/101827
https://peps.python.org/pep-0692/https://peps.python.org/pep-0692/
https://github.com/python/cpython/pull/104048](https://togithub.com/python/cpython/pull/104048)4048https://github.com/python/cpython/pull/104048](https://togithub.com/python/cpython/pull/104048)4048
https://www.mend.io/free-developer-tools/renovate/https://www.mend.io/free-developer-tools/renovate/
https://app.renovatebot.com/dashboard#github/allenporter/flux-localhttps://app.renovatebot.com/dashboard#github/allenporter/flux-local
'_io.BufferedReader' object has no attribute 'decode' python-openapi/openapi-spec-validator#209 https://github.com/python-openapi/openapi-spec-validator/issues/209
BaseFilePathHandler has different working logic in Python 3.7 and Python 3.8, causing error reading files. p1c2u/jsonschema-path#14 https://github.com/p1c2u/jsonschema-path/issues/14
pmhahnhttps://github.com/pmhahn
Jun 10, 2023 https://github.com/python/cpython/pull/103034#ref-commit-8c4ebfd
https://github.com/spaceone
test(udm-rest-api): fix 73_udm-rest/01_openapi_validationhttps://github.com/univention/univention-corporate-server/commit/8c4ebfd0cd14c2fa31d7ecb6e2d74b0625f65faa
8c4ebfdhttps://github.com/univention/univention-corporate-server/commit/8c4ebfd0cd14c2fa31d7ecb6e2d74b0625f65faa
https://github.com/python/typing_extensions/blob/main/CHANGELOG.md#release-460-may-22-2023https://github.com/python/typing_extensions/blob/main/CHANGELOG.md#release-460-may-22-2023
python/cpython#103034https://github.com/python/cpython/pull/103034
dangotbannedhttps://github.com/dangotbanned
May 31, 2024 https://github.com/python/cpython/pull/103034#ref-commit-61279cd
https://github.com/dangotbanned
fix(typing): Use safer typing_extensions.runtime_checkable unless `…https://github.com/dangotbanned/altair/commit/61279cd0da13a52de6f36ff22775d5a71a4c3b81
61279cdhttps://github.com/dangotbanned/altair/commit/61279cd0da13a52de6f36ff22775d5a71a4c3b81
python/cpython#103034https://github.com/python/cpython/pull/103034
https://github.com/GDYendell
GDYendellhttps://github.com/GDYendell
Nov 20, 2024https://github.com/python/cpython/pull/103034#issuecomment-2488670252
Please reload this pagehttps://github.com/python/cpython/pull/103034
useshttps://github.com/python/cpython/blob/37c57dfad12744608091653fd753a1f770e2479b/Lib/inspect.py#L1733
useshttps://github.com/python/cpython/blob/main/Lib/inspect.py#L1669
herehttps://docs.python.org/3/whatsnew/3.12.html#typing
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/AlexWaygood
AlexWaygoodhttps://github.com/AlexWaygood
Nov 20, 2024https://github.com/python/cpython/pull/103034#issuecomment-2488706099
@GDYendellhttps://github.com/GDYendell
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/GDYendell
GDYendellhttps://github.com/GDYendell
Nov 20, 2024 https://github.com/python/cpython/pull/103034#ref-issue-2676048882
Bound instance methods fail to satisfy runtime_checkable Protocol #127059 https://github.com/python/cpython/issues/127059
https://github.com/dangotbanned
dangotbannedhttps://github.com/dangotbanned
Dec 14, 2024 https://github.com/python/cpython/pull/103034#ref-pullrequest-2723509543
chore: Add some Compliant Protocols narwhals-dev/narwhals#1522 https://github.com/narwhals-dev/narwhals/pull/1522
Sign up for freehttps://github.com/join?source=comment-repo
Sign in to commenthttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F103034
https://github.com/carljm
carljm https://github.com/carljm
https://github.com/python/cpython/pull/103034/files/9989eea363a1bd09ce1892b17704b631228caac9
https://github.com/JelleZijlstra
JelleZijlstra https://github.com/JelleZijlstra
https://github.com/python/cpython/pull/103034/files/9989eea363a1bd09ce1892b17704b631228caac9
https://github.com/Fidget-Spinner
Fidget-Spinner https://github.com/Fidget-Spinner
3.12 https://github.com/python/cpython/issues?q=state%3Aopen%20label%3A3.12
stdlib https://github.com/python/cpython/issues?q=state%3Aopen%20label%3Astdlib
topic-typing https://github.com/python/cpython/issues?q=state%3Aopen%20label%3Atopic-typing
Please reload this pagehttps://github.com/python/cpython/pull/103034
https://github.com/AlexWaygood
https://github.com/gvanrossum
https://github.com/samuelcolvin
https://github.com/leycec
https://github.com/Tinche
https://github.com/agronholm
https://github.com/carljm
https://github.com/tiangolo
https://github.com/GDYendell
https://github.com/JelleZijlstra
https://github.com/bedevere-bot
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.