René's URL Explorer Experiment


Title: gh-128384: Add thread-safe context manager to "warnings" module by nascheme · Pull Request #128300 · python/cpython · GitHub

Open Graph Title: gh-128384: Add thread-safe context manager to "warnings" module by nascheme · Pull Request #128300 · python/cpython

X Title: gh-128384: Add thread-safe context manager to "warnings" module by nascheme · Pull Request #128300 · python/cpython

Description: This PR adds a new thread-local (and async friendly) context manager that uses contextvars. The recommended pattern for new code that doesn't care about backwards compatibility would be: with warnings.local_context() as ctx: ctx.simplefilter(...) ... For code that wants to be compatible with older versions of Python, the suggested code is: import warnings try: warn_ctx = warnings.get_context except AttributeError: def warn_ctx(): return warnings with warn_ctx().catch_warnings(): warn_ctx().simplefilter(...) ... with warn_ctx().catch_warnings(record=True) as log: ... This change retains warnings.filters and warnings.catch_warnings() as mechanisms that use process global state. Conceptually, there will be two sets of warning filters: the legacy process global warnings.filters list and the thread local get_context()._filters list. The context object returned by get_context() has an API that overlaps with the warnings module function API. Perhaps we could eventually warn when the process global versions are used but I think that would be many years in the future and not worth considering now. It would be intuitive if the thread local filtering was inherited when a new thread is created. I've created a separate PR that adds this feature to threading.Thread: gh-128209. That's a potentially controversial change but I think it's the correct thing to do. It will make contextvars behave similarly between asyncio tasks (which already inherit context) and threads. I think people will expect the warnings context manager to have lexical scope. If you see the code: with warnings.local_context() as ctx: ctx.simplefilter(MyWarning) inner_function() Then you would assume that inner_function() is going to have MyWarning filtered, even if it internally spawns a thread. Regarding backwards compatibility, I did a code search and there are quite a few examples for code that manipulates warnings.filters directly, either mutating it or assigning a different list to the module global. There is also code that does this: warnings.simplefilter(...) ... warnings.filters.pop(0) 📚 Documentation preview 📚: https://cpython-previews--128300.org.readthedocs.build/ Issue: gh-128384

Open Graph Description: This PR adds a new thread-local (and async friendly) context manager that uses contextvars. The recommended pattern for new code that doesn't care about backwards compatibility would be: with ...

X Description: This PR adds a new thread-local (and async friendly) context manager that uses contextvars. The recommended pattern for new code that doesn't care about backwards compatibility would be: w...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:f3805969-fabb-875e-8ac7-f46f9fc49494
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idCC9C:26FC81:13E5DDD:1A8B631:6A534448
html-safe-nonce11e92b98239cd040056ed0e1e475f401b3894068073b1908d40ed1835e578d47
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDQzlDOjI2RkM4MToxM0U1REREOjFBOEI2MzE6NkE1MzQ0NDgiLCJ2aXNpdG9yX2lkIjoiMzg3NDAzMDUxOTYwOTE0ODQ4OCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac7f53753fe0b89f7ab25236e1b40926895a9393939ffe17d205518f4c7e28da5c
hovercard-subject-tagpull_request:2253782097
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///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python/cpython/pull/128300/files
twitter:imagehttps://avatars.githubusercontent.com/u/690853?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/690853?s=400&v=4
og:image:altThis PR adds a new thread-local (and async friendly) context manager that uses contextvars. The recommended pattern for new code that doesn't care about backwards compatibility would be: with ...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneb9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb
turbo-cache-controlno-preview
diff-viewunified
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 full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release07a982c1d40157c619b364352b704c3ce66bb332
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/128300/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F128300%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
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
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
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/enterprise/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%2F128300%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
Reloadhttps://github.com/python/cpython/pull/128300/files
Reloadhttps://github.com/python/cpython/pull/128300/files
Reloadhttps://github.com/python/cpython/pull/128300/files
Please reload this pagehttps://github.com/python/cpython/pull/128300/files
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/128300/files
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 35k 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.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 servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
naschemehttps://github.com/nascheme
python:mainhttps://github.com/python/cpython/tree/main
nascheme:warnings_local_contexthttps://github.com/nascheme/cpython/tree/warnings_local_context
Conversation 3 https://github.com/python/cpython/pull/128300
Commits 9 https://github.com/python/cpython/pull/128300/commits
Checks 0 https://github.com/python/cpython/pull/128300/checks
Files changed https://github.com/python/cpython/pull/128300/files
Please reload this pagehttps://github.com/python/cpython/pull/128300/files
gh-128384: Add thread-safe context manager to "warnings" module https://github.com/python/cpython/pull/128300/files#top
Show all changes 9 commits https://github.com/python/cpython/pull/128300/files
deb659d Add locking to warnings.py. nascheme Dec 27, 2024 https://github.com/python/cpython/pull/128300/commits/deb659dd1177e1a537fd25da94576e6e4ea32028
902df7c Add 'context' parameter to Thread. nascheme Dec 21, 2024 https://github.com/python/cpython/pull/128300/commits/902df7cc238b1060041b87ec22314d2594c92d11
e61b40e Make _contextvars a builtin module. nascheme Dec 28, 2024 https://github.com/python/cpython/pull/128300/commits/e61b40e6a9c3ae226115912e5afce44dc75db9de
3bac8d1 wip: warnings local_context nascheme Dec 27, 2024 https://github.com/python/cpython/pull/128300/commits/3bac8d188cae7e17181f0e206bb9d2f4a75cb8fd
c7287ad Rename function, add locking to _filters_mutated(). nascheme Jan 1, 2025 https://github.com/python/cpython/pull/128300/commits/c7287ad8a86ae157bae77346656a3de1e0198e3e
1521276 Use re-entrant lock for warnings module. nascheme Jan 1, 2025 https://github.com/python/cpython/pull/128300/commits/152127603b0ba7012cb0bb7767a45d7b39b7ec39
e5c128a Make _warnings use _warnings_context. nascheme Jan 1, 2025 https://github.com/python/cpython/pull/128300/commits/e5c128a81e882ed7f023c32fd17db5189cb11f59
948a9e9 Add unit tests for warnings.Context nascheme Jan 2, 2025 https://github.com/python/cpython/pull/128300/commits/948a9e923723c2409114ca40dc096cc171399767
fc20826 Improve Context.resetwarnings(). nascheme Jan 2, 2025 https://github.com/python/cpython/pull/128300/commits/fc20826cea9853888418e202c3ae1907260e9360
Clear filters https://github.com/python/cpython/pull/128300/files
Please reload this pagehttps://github.com/python/cpython/pull/128300/files
Please reload this pagehttps://github.com/python/cpython/pull/128300/files
threading.rst https://github.com/python/cpython/pull/128300/files#diff-6a424b7e58eb2394ee0335dd6e08ab8d67e7058852fae0f3aa1b40493fa14a64
pycore_global_objects_fini_generated.h https://github.com/python/cpython/pull/128300/files#diff-31f682b2a04cda997f449a9816ee5fae305e3bfa7357afcb794615921c6a88d2
pycore_global_strings.h https://github.com/python/cpython/pull/128300/files#diff-7656e411eccd63ff8aab3e11de3f45035665f6b639206d3f440727dfb5e0ebcf
pycore_runtime_init_generated.h https://github.com/python/cpython/pull/128300/files#diff-69a1fc720f0b1e9005cf7717dd81c823399da81dd2f6480664b51238c1ef93f0
pycore_unicodeobject_generated.h https://github.com/python/cpython/pull/128300/files#diff-510f6084b63d39305481b719ae0a29475ba759e259a8e4cee4f07c451ffbb2d6
pycore_warnings.h https://github.com/python/cpython/pull/128300/files#diff-4aacd6399c9c463b24a64311fb5b80b3666304d99b1224422074e66046bcaa3e
test_context.py https://github.com/python/cpython/pull/128300/files#diff-792103db84a1a30161bf2c8d994d0fc5ee17ca7635119249ba520c96d0f238a4
test_decimal.py https://github.com/python/cpython/pull/128300/files#diff-0bf3efdde952043078e322013c2459632397c6a9b312d49e70ae4a9791e2a1d8
test_faulthandler.py https://github.com/python/cpython/pull/128300/files#diff-c74746bd82617a9df3849adc8898d9b6eee44ab0a63288033f61c04bf3f0f939
__init__.py https://github.com/python/cpython/pull/128300/files#diff-21be9e4809f5cd7dcd4665eb0054b4bf9d924c2c9ce0a010e85dba405e94d9e9
threading.py https://github.com/python/cpython/pull/128300/files#diff-b250d3d0e0d909784a67083e9069ce507513a67e8514a011e2f364027e25e0b0
warnings.py https://github.com/python/cpython/pull/128300/files#diff-1d0c2ffbcb01254c4ab02053d85527be50e03ea2908dc6cdba9fc185b8df9b7b
Makefile.pre.in https://github.com/python/cpython/pull/128300/files#diff-1f0a8db227d22005511b0d90f5339b97db345917b863954b3b3ccb9ec308767c
Setup https://github.com/python/cpython/pull/128300/files#diff-54b4e964e44dd7cf194c63f73a4b01d68cc670e72018d895003b48709c7e88db
Setup.stdlib.in https://github.com/python/cpython/pull/128300/files#diff-93b54a98829ea89eaf6335c02f546511f7780d865131407436b10a401ecd375c
config.c.in https://github.com/python/cpython/pull/128300/files#diff-172de381ccdd80b69a8e904eed0683c7979080fe3395f0bdd3cca511dfb9baa4
pythoncore.vcxproj https://github.com/python/cpython/pull/128300/files#diff-4295039788386c2986b811f2a6b59cf088be59822b24b4f1243c9e9b184f65fb
pythoncore.vcxproj.filters https://github.com/python/cpython/pull/128300/files#diff-9e715828befc9c50c8b483b06d4923cda0db44f57d0c20e6a6d428ba60bfa0c5
_contextvars.c https://github.com/python/cpython/pull/128300/files#diff-423ea0723359d0da162e01f28c419c5669bc0ab824496e2a0945207d3d91592a
_warnings.c https://github.com/python/cpython/pull/128300/files#diff-868cb9c3ec7f49459c652319e480e03ee132976b45fbedacb94958f8e0a9ea58
_contextvars.c.h https://github.com/python/cpython/pull/128300/files#diff-aa09e4385ba7cf59177f7f8bf2a43673469b45cfbafe1c6e65ccd3852a5927e9
_warnings.c.h https://github.com/python/cpython/pull/128300/files#diff-12950f5bbdc079cc0b7edd3b04cb1b2e5a7de0eb4964fe861e3c4acc5f0675a0
configure.ac https://github.com/python/cpython/pull/128300/files#diff-49473dca262eeab3b4a43002adb08b4db31020d190caaad1594b47f1d5daa810
Doc/library/threading.rsthttps://github.com/python/cpython/pull/128300/files#diff-6a424b7e58eb2394ee0335dd6e08ab8d67e7058852fae0f3aa1b40493fa14a64
View file https://github.com/nascheme/cpython/blob/fc20826cea9853888418e202c3ae1907260e9360/Doc/library/threading.rst
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/128300/{{ revealButtonHref }}
https://github.com/python/cpython/pull/128300/files#diff-6a424b7e58eb2394ee0335dd6e08ab8d67e7058852fae0f3aa1b40493fa14a64
https://github.com/python/cpython/pull/128300/files#diff-6a424b7e58eb2394ee0335dd6e08ab8d67e7058852fae0f3aa1b40493fa14a64
https://github.com/python/cpython/pull/128300/files#diff-6a424b7e58eb2394ee0335dd6e08ab8d67e7058852fae0f3aa1b40493fa14a64
https://github.com/python/cpython/pull/128300/files#diff-6a424b7e58eb2394ee0335dd6e08ab8d67e7058852fae0f3aa1b40493fa14a64
Include/internal/pycore_global_objects_fini_generated.hhttps://github.com/python/cpython/pull/128300/files#diff-31f682b2a04cda997f449a9816ee5fae305e3bfa7357afcb794615921c6a88d2
View file https://github.com/nascheme/cpython/blob/fc20826cea9853888418e202c3ae1907260e9360/Include/internal/pycore_global_objects_fini_generated.h
Open in desktop https://desktop.github.com
how customized files appear on GitHubhttps://docs.github.com/github/administering-a-repository/customizing-how-changed-files-appear-on-github
Please reload this pagehttps://github.com/python/cpython/pull/128300/files
Include/internal/pycore_global_strings.hhttps://github.com/python/cpython/pull/128300/files#diff-7656e411eccd63ff8aab3e11de3f45035665f6b639206d3f440727dfb5e0ebcf
View file https://github.com/nascheme/cpython/blob/fc20826cea9853888418e202c3ae1907260e9360/Include/internal/pycore_global_strings.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/128300/{{ revealButtonHref }}
https://github.com/python/cpython/pull/128300/files#diff-7656e411eccd63ff8aab3e11de3f45035665f6b639206d3f440727dfb5e0ebcf
https://github.com/python/cpython/pull/128300/files#diff-7656e411eccd63ff8aab3e11de3f45035665f6b639206d3f440727dfb5e0ebcf
Include/internal/pycore_runtime_init_generated.hhttps://github.com/python/cpython/pull/128300/files#diff-69a1fc720f0b1e9005cf7717dd81c823399da81dd2f6480664b51238c1ef93f0
View file https://github.com/nascheme/cpython/blob/fc20826cea9853888418e202c3ae1907260e9360/Include/internal/pycore_runtime_init_generated.h
Open in desktop https://desktop.github.com
how customized files appear on GitHubhttps://docs.github.com/github/administering-a-repository/customizing-how-changed-files-appear-on-github
Please reload this pagehttps://github.com/python/cpython/pull/128300/files
Include/internal/pycore_unicodeobject_generated.hhttps://github.com/python/cpython/pull/128300/files#diff-510f6084b63d39305481b719ae0a29475ba759e259a8e4cee4f07c451ffbb2d6
View file https://github.com/nascheme/cpython/blob/fc20826cea9853888418e202c3ae1907260e9360/Include/internal/pycore_unicodeobject_generated.h
Open in desktop https://desktop.github.com
how customized files appear on GitHubhttps://docs.github.com/github/administering-a-repository/customizing-how-changed-files-appear-on-github
Please reload this pagehttps://github.com/python/cpython/pull/128300/files
Include/internal/pycore_warnings.hhttps://github.com/python/cpython/pull/128300/files#diff-4aacd6399c9c463b24a64311fb5b80b3666304d99b1224422074e66046bcaa3e
View file https://github.com/nascheme/cpython/blob/fc20826cea9853888418e202c3ae1907260e9360/Include/internal/pycore_warnings.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/128300/{{ revealButtonHref }}
https://github.com/python/cpython/pull/128300/files#diff-4aacd6399c9c463b24a64311fb5b80b3666304d99b1224422074e66046bcaa3e
https://github.com/python/cpython/pull/128300/files#diff-4aacd6399c9c463b24a64311fb5b80b3666304d99b1224422074e66046bcaa3e
https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L242
Lib/test/test_context.pyhttps://github.com/python/cpython/pull/128300/files#diff-792103db84a1a30161bf2c8d994d0fc5ee17ca7635119249ba520c96d0f238a4
View file https://github.com/nascheme/cpython/blob/fc20826cea9853888418e202c3ae1907260e9360/Lib/test/test_context.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/128300/{{ revealButtonHref }}
https://github.com/python/cpython/pull/128300/files#diff-792103db84a1a30161bf2c8d994d0fc5ee17ca7635119249ba520c96d0f238a4
https://github.com/python/cpython/pull/128300/files#diff-792103db84a1a30161bf2c8d994d0fc5ee17ca7635119249ba520c96d0f238a4
Lib/test/test_decimal.pyhttps://github.com/python/cpython/pull/128300/files#diff-0bf3efdde952043078e322013c2459632397c6a9b312d49e70ae4a9791e2a1d8
View file https://github.com/nascheme/cpython/blob/fc20826cea9853888418e202c3ae1907260e9360/Lib/test/test_decimal.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/128300/{{ revealButtonHref }}
https://github.com/python/cpython/pull/128300/files#diff-0bf3efdde952043078e322013c2459632397c6a9b312d49e70ae4a9791e2a1d8
https://github.com/python/cpython/pull/128300/files#diff-0bf3efdde952043078e322013c2459632397c6a9b312d49e70ae4a9791e2a1d8
Lib/test/test_faulthandler.pyhttps://github.com/python/cpython/pull/128300/files#diff-c74746bd82617a9df3849adc8898d9b6eee44ab0a63288033f61c04bf3f0f939
View file https://github.com/nascheme/cpython/blob/fc20826cea9853888418e202c3ae1907260e9360/Lib/test/test_faulthandler.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/128300/{{ revealButtonHref }}
https://github.com/python/cpython/pull/128300/files#diff-c74746bd82617a9df3849adc8898d9b6eee44ab0a63288033f61c04bf3f0f939
https://github.com/python/cpython/pull/128300/files#diff-c74746bd82617a9df3849adc8898d9b6eee44ab0a63288033f61c04bf3f0f939
Lib/test/test_warnings/__init__.pyhttps://github.com/python/cpython/pull/128300/files#diff-21be9e4809f5cd7dcd4665eb0054b4bf9d924c2c9ce0a010e85dba405e94d9e9
View file https://github.com/nascheme/cpython/blob/fc20826cea9853888418e202c3ae1907260e9360/Lib/test/test_warnings/__init__.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/128300/{{ revealButtonHref }}
https://github.com/python/cpython/pull/128300/files#diff-21be9e4809f5cd7dcd4665eb0054b4bf9d924c2c9ce0a010e85dba405e94d9e9
https://github.com/python/cpython/pull/128300/files#diff-21be9e4809f5cd7dcd4665eb0054b4bf9d924c2c9ce0a010e85dba405e94d9e9
https://github.com/python/cpython/pull/128300/files#diff-21be9e4809f5cd7dcd4665eb0054b4bf9d924c2c9ce0a010e85dba405e94d9e9
gsthttps://github.com/gst
Apr 7, 2025https://github.com/python/cpython/pull/128300/files#r2031584686
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/python/cpython/pull/128300/files
naschemehttps://github.com/nascheme
Apr 7, 2025https://github.com/python/cpython/pull/128300/files#r2031941299
Please reload this pagehttps://github.com/python/cpython/pull/128300/files
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/python/cpython/pull/128300/files
https://github.com/python/cpython/pull/128300/files#diff-21be9e4809f5cd7dcd4665eb0054b4bf9d924c2c9ce0a010e85dba405e94d9e9
Lib/threading.pyhttps://github.com/python/cpython/pull/128300/files#diff-b250d3d0e0d909784a67083e9069ce507513a67e8514a011e2f364027e25e0b0
View file https://github.com/nascheme/cpython/blob/fc20826cea9853888418e202c3ae1907260e9360/Lib/threading.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/128300/{{ revealButtonHref }}
https://github.com/python/cpython/pull/128300/files#diff-b250d3d0e0d909784a67083e9069ce507513a67e8514a011e2f364027e25e0b0
https://github.com/python/cpython/pull/128300/files#diff-b250d3d0e0d909784a67083e9069ce507513a67e8514a011e2f364027e25e0b0
https://github.com/python/cpython/pull/128300/files#diff-b250d3d0e0d909784a67083e9069ce507513a67e8514a011e2f364027e25e0b0
https://github.com/python/cpython/pull/128300/files#diff-b250d3d0e0d909784a67083e9069ce507513a67e8514a011e2f364027e25e0b0
https://github.com/python/cpython/pull/128300/files#diff-b250d3d0e0d909784a67083e9069ce507513a67e8514a011e2f364027e25e0b0
https://github.com/python/cpython/pull/128300/files#diff-b250d3d0e0d909784a67083e9069ce507513a67e8514a011e2f364027e25e0b0
https://github.com/python/cpython/pull/128300/files#diff-b250d3d0e0d909784a67083e9069ce507513a67e8514a011e2f364027e25e0b0
https://github.com/python/cpython/pull/128300/files#diff-b250d3d0e0d909784a67083e9069ce507513a67e8514a011e2f364027e25e0b0
https://github.com/python/cpython/pull/128300/files#diff-b250d3d0e0d909784a67083e9069ce507513a67e8514a011e2f364027e25e0b0
https://github.com/python/cpython/pull/128300/files#diff-b250d3d0e0d909784a67083e9069ce507513a67e8514a011e2f364027e25e0b0
https://github.com/python/cpython/pull/128300/files#diff-b250d3d0e0d909784a67083e9069ce507513a67e8514a011e2f364027e25e0b0
Please reload this pagehttps://github.com/python/cpython/pull/128300/files
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.