René's URL Explorer Experiment


Title: gh-118761: Improve import time by lazy import of `warnings` by donbarbos · Pull Request #129765 · python/cpython · GitHub

Open Graph Title: gh-118761: Improve import time by lazy import of `warnings` by donbarbos · Pull Request #129765 · python/cpython

X Title: gh-118761: Improve import time by lazy import of `warnings` by donbarbos · Pull Request #129765 · python/cpython

Description: Improve import time modules by lazy import warnings. Remove unused warnings and struct from Lib/ctypes/_layout.py. My hyperfine benchmarks: First experiment in Main branch ➜ cpython git:(43e0240213) ✗ hyperfine --warmup 11 "./python -c 'import codeop'" "./python -c 'import zipimport'" "./python -c 'import ctypes'" "./python -c 'import hmac'" "./python -c 'import importlib'" "./python -c 'import logging'" "./python -c 'import pkgutil'" "./python -c 'import pydoc'" "./python -c 'import rlcompleter'" "./python -c 'import ssl'" "./python -c 'import tempfile'" "./python -c 'import traceback'" "./python -c 'import urllib'" "./python -c 'import xml'" Benchmark 1: ./python -c 'import codeop' Time (mean ± σ): 24.6 ms ± 1.0 ms [User: 21.8 ms, System: 2.7 ms] Range (min … max): 23.4 ms … 32.9 ms 112 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 2: ./python -c 'import zipimport' Time (mean ± σ): 22.7 ms ± 0.8 ms [User: 20.0 ms, System: 2.6 ms] Range (min … max): 21.8 ms … 28.6 ms 128 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 3: ./python -c 'import ctypes' Time (mean ± σ): 27.4 ms ± 0.5 ms [User: 24.1 ms, System: 3.2 ms] Range (min … max): 26.5 ms … 29.3 ms 108 runs Benchmark 4: ./python -c 'import hmac' Time (mean ± σ): 27.2 ms ± 0.5 ms [User: 23.8 ms, System: 3.3 ms] Range (min … max): 26.3 ms … 28.9 ms 108 runs Benchmark 5: ./python -c 'import importlib' Time (mean ± σ): 23.1 ms ± 0.9 ms [User: 20.3 ms, System: 2.6 ms] Range (min … max): 22.1 ms … 31.3 ms 122 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 6: ./python -c 'import logging' Time (mean ± σ): 51.9 ms ± 0.6 ms [User: 47.8 ms, System: 4.0 ms] Range (min … max): 50.6 ms … 53.4 ms 56 runs Benchmark 7: ./python -c 'import pkgutil' Time (mean ± σ): 52.2 ms ± 0.9 ms [User: 48.3 ms, System: 3.8 ms] Range (min … max): 50.4 ms … 54.8 ms 58 runs Benchmark 8: ./python -c 'import pydoc' Time (mean ± σ): 89.2 ms ± 1.7 ms [User: 83.4 ms, System: 5.6 ms] Range (min … max): 87.2 ms … 95.0 ms 34 runs Benchmark 9: ./python -c 'import rlcompleter' Time (mean ± σ): 61.8 ms ± 1.1 ms [User: 57.0 ms, System: 4.6 ms] Range (min … max): 60.1 ms … 65.8 ms 49 runs Benchmark 10: ./python -c 'import ssl' Time (mean ± σ): 47.6 ms ± 1.8 ms [User: 43.1 ms, System: 4.3 ms] Range (min … max): 45.1 ms … 57.6 ms 63 runs Benchmark 11: ./python -c 'import tempfile' Time (mean ± σ): 47.2 ms ± 1.1 ms [User: 42.9 ms, System: 4.3 ms] Range (min … max): 45.2 ms … 49.9 ms 63 runs Benchmark 12: ./python -c 'import traceback' Time (mean ± σ): 43.5 ms ± 1.2 ms [User: 39.8 ms, System: 3.5 ms] Range (min … max): 41.7 ms … 46.8 ms 65 runs Benchmark 13: ./python -c 'import urllib' Time (mean ± σ): 25.9 ms ± 1.7 ms [User: 22.8 ms, System: 2.9 ms] Range (min … max): 22.5 ms … 34.3 ms 128 runs Benchmark 14: ./python -c 'import xml' Time (mean ± σ): 26.2 ms ± 0.9 ms [User: 23.5 ms, System: 2.6 ms] Range (min … max): 24.5 ms … 29.2 ms 114 runs Summary ./python -c 'import zipimport' ran 1.02 ± 0.05 times faster than ./python -c 'import importlib' 1.08 ± 0.06 times faster than ./python -c 'import codeop' 1.14 ± 0.09 times faster than ./python -c 'import urllib' 1.16 ± 0.06 times faster than ./python -c 'import xml' 1.20 ± 0.05 times faster than ./python -c 'import hmac' 1.21 ± 0.05 times faster than ./python -c 'import ctypes' 1.92 ± 0.09 times faster than ./python -c 'import traceback' 2.08 ± 0.09 times faster than ./python -c 'import tempfile' 2.10 ± 0.11 times faster than ./python -c 'import ssl' 2.29 ± 0.09 times faster than ./python -c 'import logging' 2.30 ± 0.09 times faster than ./python -c 'import pkgutil' 2.72 ± 0.11 times faster than ./python -c 'import rlcompleter' 3.93 ± 0.16 times faster than ./python -c 'import pydoc' Second experiment in Main branch ➜ cpython git:(43e0240213) ✗ hyperfine --warmup 11 "./python -c 'import codeop'" "./python -c 'import zipimport'" "./python -c 'import ctypes'" "./python -c 'import hmac'" "./python -c 'import importlib'" "./python -c 'import logging'" "./python -c 'import pkgutil'" "./python -c 'import pydoc'" "./python -c 'import rlcompleter'" "./python -c 'import ssl'" "./python -c 'import tempfile'" "./python -c 'import traceback'" "./python -c 'import urllib'" "./python -c 'import xml'" Benchmark 1: ./python -c 'import codeop' Time (mean ± σ): 24.5 ms ± 1.6 ms [User: 21.7 ms, System: 2.8 ms] Range (min … max): 23.5 ms … 39.7 ms 119 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 2: ./python -c 'import zipimport' Time (mean ± σ): 22.8 ms ± 1.0 ms [User: 20.4 ms, System: 2.3 ms] Range (min … max): 21.7 ms … 30.3 ms 129 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 3: ./python -c 'import ctypes' Time (mean ± σ): 27.6 ms ± 0.9 ms [User: 24.5 ms, System: 2.9 ms] Range (min … max): 26.5 ms … 34.3 ms 105 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 4: ./python -c 'import hmac' Time (mean ± σ): 27.1 ms ± 0.6 ms [User: 23.7 ms, System: 3.3 ms] Range (min … max): 26.2 ms … 28.8 ms 108 runs Benchmark 5: ./python -c 'import importlib' Time (mean ± σ): 23.9 ms ± 1.2 ms [User: 21.4 ms, System: 2.3 ms] Range (min … max): 22.0 ms … 26.4 ms 126 runs Benchmark 6: ./python -c 'import logging' Time (mean ± σ): 59.0 ms ± 2.9 ms [User: 54.6 ms, System: 4.3 ms] Range (min … max): 56.5 ms … 73.0 ms 52 runs Benchmark 7: ./python -c 'import pkgutil' Time (mean ± σ): 61.2 ms ± 3.9 ms [User: 56.1 ms, System: 5.0 ms] Range (min … max): 55.4 ms … 68.4 ms 53 runs Benchmark 8: ./python -c 'import pydoc' Time (mean ± σ): 114.4 ms ± 3.4 ms [User: 106.5 ms, System: 7.7 ms] Range (min … max): 111.3 ms … 122.7 ms 26 runs Benchmark 9: ./python -c 'import rlcompleter' Time (mean ± σ): 78.8 ms ± 1.2 ms [User: 72.5 ms, System: 6.1 ms] Range (min … max): 76.7 ms … 81.0 ms 38 runs Benchmark 10: ./python -c 'import ssl' Time (mean ± σ): 58.8 ms ± 0.9 ms [User: 53.4 ms, System: 5.3 ms] Range (min … max): 57.4 ms … 61.6 ms 50 runs Benchmark 11: ./python -c 'import tempfile' Time (mean ± σ): 59.8 ms ± 1.8 ms [User: 54.2 ms, System: 5.5 ms] Range (min … max): 57.4 ms … 69.4 ms 50 runs Benchmark 12: ./python -c 'import traceback' Time (mean ± σ): 54.8 ms ± 1.0 ms [User: 50.3 ms, System: 4.4 ms] Range (min … max): 52.4 ms … 56.9 ms 56 runs Benchmark 13: ./python -c 'import urllib' Time (mean ± σ): 29.5 ms ± 0.6 ms [User: 26.2 ms, System: 3.1 ms] Range (min … max): 28.3 ms … 31.9 ms 100 runs Benchmark 14: ./python -c 'import xml' Time (mean ± σ): 29.7 ms ± 1.1 ms [User: 26.7 ms, System: 3.0 ms] Range (min … max): 28.2 ms … 38.3 ms 102 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Summary ./python -c 'import zipimport' ran 1.05 ± 0.07 times faster than ./python -c 'import importlib' 1.08 ± 0.08 times faster than ./python -c 'import codeop' 1.19 ± 0.06 times faster than ./python -c 'import hmac' 1.21 ± 0.07 times faster than ./python -c 'import ctypes' 1.29 ± 0.06 times faster than ./python -c 'import urllib' 1.30 ± 0.07 times faster than ./python -c 'import xml' 2.40 ± 0.11 times faster than ./python -c 'import traceback' 2.58 ± 0.12 times faster than ./python -c 'import ssl' 2.58 ± 0.17 times faster than ./python -c 'import logging' 2.62 ± 0.14 times faster than ./python -c 'import tempfile' 2.68 ± 0.20 times faster than ./python -c 'import pkgutil' 3.45 ± 0.16 times faster than ./python -c 'import rlcompleter' 5.01 ± 0.26 times faster than ./python -c 'import pydoc' First experiment in PR branch ➜ cpython git:(issue-118761) ✗ hyperfine --warmup 11 "./python -c 'import codeop'" "./python -c 'import zipimport'" "./python -c 'import ctypes'" "./python -c 'import hmac'" "./python -c 'import importlib'" "./python -c 'import logging'" "./python -c 'import pkgutil'" "./python -c 'import pydoc'" "./python -c 'import rlcompleter'" "./python -c 'import ssl'" "./python -c 'import tempfile'" "./python -c 'import traceback'" "./python -c 'import urllib'" "./python -c 'import xml'" Benchmark 1: ./python -c 'import codeop' Time (mean ± σ): 23.5 ms ± 1.0 ms [User: 21.0 ms, System: 2.5 ms] Range (min … max): 22.6 ms … 33.2 ms 121 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 2: ./python -c 'import zipimport' Time (mean ± σ): 22.6 ms ± 0.8 ms [User: 20.3 ms, System: 2.2 ms] Range (min … max): 21.6 ms … 29.5 ms 127 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 3: ./python -c 'import ctypes' Time (mean ± σ): 27.3 ms ± 0.5 ms [User: 24.3 ms, System: 3.0 ms] Range (min … max): 26.4 ms … 29.0 ms 107 runs Benchmark 4: ./python -c 'import hmac' Time (mean ± σ): 26.2 ms ± 0.6 ms [User: 23.3 ms, System: 2.9 ms] Range (min … max): 25.3 ms … 27.7 ms 108 runs Benchmark 5: ./python -c 'import importlib' Time (mean ± σ): 22.9 ms ± 1.3 ms [User: 20.6 ms, System: 2.3 ms] Range (min … max): 22.0 ms … 35.4 ms 125 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 6: ./python -c 'import logging' Time (mean ± σ): 51.3 ms ± 0.8 ms [User: 47.3 ms, System: 3.9 ms] Range (min … max): 49.8 ms … 53.7 ms 58 runs Benchmark 7: ./python -c 'import pkgutil' Time (mean ± σ): 51.1 ms ± 0.8 ms [User: 47.3 ms, System: 3.8 ms] Range (min … max): 49.5 ms … 53.6 ms 58 runs Benchmark 8: ./python -c 'import pydoc' Time (mean ± σ): 85.8 ms ± 2.5 ms [User: 80.5 ms, System: 5.2 ms] Range (min … max): 84.4 ms … 99.8 ms 35 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 9: ./python -c 'import rlcompleter' Time (mean ± σ): 60.6 ms ± 0.8 ms [User: 55.8 ms, System: 4.6 ms] Range (min … max): 59.2 ms … 63.9 ms 49 runs Benchmark 10: ./python -c 'import ssl' Time (mean ± σ): 45.4 ms ± 1.7 ms [User: 41.3 ms, System: 4.0 ms] Range (min … max): 43.9 ms … 58.1 ms 65 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 11: ./python -c 'import tempfile' Time (mean ± σ): 46.1 ms ± 1.7 ms [User: 41.8 ms, System: 4.2 ms] Range (min … max): 44.3 ms … 58.2 ms 65 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 12: ./python -c 'import traceback' Time (mean ± σ): 42.4 ms ± 0.8 ms [User: 38.7 ms, System: 3.4 ms] Range (min … max): 40.4 ms … 44.3 ms 70 runs Benchmark 13: ./python -c 'import urllib' Time (mean ± σ): 22.9 ms ± 0.6 ms [User: 20.4 ms, System: 2.4 ms] Range (min … max): 22.0 ms … 24.8 ms 122 runs Benchmark 14: ./python -c 'import xml' Time (mean ± σ): 24.6 ms ± 1.4 ms [User: 22.1 ms, System: 2.4 ms] Range (min … max): 22.2 ms … 33.0 ms 126 runs Summary ./python -c 'import zipimport' ran 1.01 ± 0.04 times faster than ./python -c 'import urllib' 1.01 ± 0.07 times faster than ./python -c 'import importlib' 1.04 ± 0.06 times faster than ./python -c 'import codeop' 1.09 ± 0.07 times faster than ./python -c 'import xml' 1.16 ± 0.05 times faster than ./python -c 'import hmac' 1.21 ± 0.05 times faster than ./python -c 'import ctypes' 1.88 ± 0.07 times faster than ./python -c 'import traceback' 2.01 ± 0.10 times faster than ./python -c 'import ssl' 2.04 ± 0.10 times faster than ./python -c 'import tempfile' 2.26 ± 0.08 times faster than ./python -c 'import pkgutil' 2.27 ± 0.09 times faster than ./python -c 'import logging' 2.68 ± 0.10 times faster than ./python -c 'import rlcompleter' 3.80 ± 0.17 times faster than ./python -c 'import pydoc' Second experiment in PR branch ➜ cpython git:(issue-118761) ✗ hyperfine --warmup 11 "./python -c 'import codeop'" "./python -c 'import zipimport'" "./python -c 'import ctypes'" "./python -c 'import hmac'" "./python -c 'import importlib'" "./python -c 'import logging'" "./python -c 'import pkgutil'" "./python -c 'import pydoc'" "./python -c 'import rlcompleter'" "./python -c 'import ssl'" "./python -c 'import tempfile'" "./python -c 'import traceback'" "./python -c 'import urllib'" "./python -c 'import xml'" Benchmark 1: ./python -c 'import codeop' Time (mean ± σ): 23.7 ms ± 1.0 ms [User: 21.0 ms, System: 2.6 ms] Range (min … max): 22.7 ms … 31.0 ms 122 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 2: ./python -c 'import zipimport' Time (mean ± σ): 22.6 ms ± 0.5 ms [User: 20.1 ms, System: 2.4 ms] Range (min … max): 21.7 ms … 24.0 ms 126 runs Benchmark 3: ./python -c 'import ctypes' Time (mean ± σ): 27.6 ms ± 0.5 ms [User: 24.7 ms, System: 2.8 ms] Range (min … max): 26.5 ms … 28.9 ms 104 runs Benchmark 4: ./python -c 'import hmac' Time (mean ± σ): 26.5 ms ± 1.0 ms [User: 23.2 ms, System: 3.2 ms] Range (min … max): 25.4 ms … 33.1 ms 111 runs Benchmark 5: ./python -c 'import importlib' Time (mean ± σ): 23.0 ms ± 0.7 ms [User: 20.6 ms, System: 2.4 ms] Range (min … max): 22.1 ms … 25.5 ms 121 runs Benchmark 6: ./python -c 'import logging' Time (mean ± σ): 51.5 ms ± 0.9 ms [User: 47.2 ms, System: 4.2 ms] Range (min … max): 49.9 ms … 54.6 ms 58 runs Benchmark 7: ./python -c 'import pkgutil' Time (mean ± σ): 51.9 ms ± 1.4 ms [User: 47.8 ms, System: 4.0 ms] Range (min … max): 49.7 ms … 58.4 ms 57 runs Benchmark 8: ./python -c 'import pydoc' Time (mean ± σ): 88.1 ms ± 2.2 ms [User: 82.1 ms, System: 5.8 ms] Range (min … max): 85.1 ms … 93.3 ms 34 runs Benchmark 9: ./python -c 'import rlcompleter' Time (mean ± σ): 63.6 ms ± 3.5 ms [User: 58.6 ms, System: 4.9 ms] Range (min … max): 59.4 ms … 76.9 ms 38 runs Benchmark 10: ./python -c 'import ssl' Time (mean ± σ): 50.6 ms ± 1.5 ms [User: 46.2 ms, System: 4.3 ms] Range (min … max): 48.9 ms … 60.0 ms 60 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 11: ./python -c 'import tempfile' Time (mean ± σ): 50.7 ms ± 0.8 ms [User: 45.7 ms, System: 4.8 ms] Range (min … max): 49.1 ms … 53.1 ms 59 runs Benchmark 12: ./python -c 'import traceback' Time (mean ± σ): 54.3 ms ± 3.5 ms [User: 49.3 ms, System: 4.9 ms] Range (min … max): 46.8 ms … 71.1 ms 63 runs Benchmark 13: ./python -c 'import urllib' Time (mean ± σ): 30.0 ms ± 0.6 ms [User: 26.9 ms, System: 3.0 ms] Range (min … max): 28.4 ms … 32.0 ms 97 runs Benchmark 14: ./python -c 'import xml' Time (mean ± σ): 29.9 ms ± 0.7 ms [User: 26.7 ms, System: 3.1 ms] Range (min … max): 28.4 ms … 32.1 ms 100 runs Summary ./python -c 'import zipimport' ran 1.02 ± 0.04 times faster than ./python -c 'import importlib' 1.05 ± 0.05 times faster than ./python -c 'import codeop' 1.17 ± 0.05 times faster than ./python -c 'import hmac' 1.22 ± 0.04 times faster than ./python -c 'import ctypes' 1.32 ± 0.04 times faster than ./python -c 'import xml' 1.33 ± 0.04 times faster than ./python -c 'import urllib' 2.24 ± 0.08 times faster than ./python -c 'import ssl' 2.24 ± 0.06 times faster than ./python -c 'import tempfile' 2.28 ± 0.06 times faster than ./python -c 'import logging' 2.30 ± 0.08 times faster than ./python -c 'import pkgutil' 2.40 ± 0.16 times faster than ./python -c 'import traceback' 2.82 ± 0.17 times faster than ./python -c 'import rlcompleter' 3.90 ± 0.13 times faster than ./python -c 'import pydoc' Issue: gh-118761

Open Graph Description: Improve import time modules by lazy import warnings. Remove unused warnings and struct from Lib/ctypes/_layout.py. My hyperfine benchmarks: First experiment in Main branch ➜ cpython git:(43e0240...

X Description: Improve import time modules by lazy import warnings. Remove unused warnings and struct from Lib/ctypes/_layout.py. My hyperfine benchmarks: First experiment in Main branch ➜ cpython git:(43e0240...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/checks(.:format)
route-controllerpull_requests
route-actionchecks
fetch-noncev2:d2c1886d-0a61-75ec-1092-7b1ecc9b3d8f
current-catalog-service-hash87dc3bc62d9b466312751bfd5f889726f4f1337bdff4e8be7da7c93d6c00a25a
request-idB0D6:FB3A6:296E29:37FA97:6969D209
html-safe-nonce57775699a3e6c32671ef46d3ee5ab209e71cf76d439513c281a136fd3b177016
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCMEQ2OkZCM0E2OjI5NkUyOTozN0ZBOTc6Njk2OUQyMDkiLCJ2aXNpdG9yX2lkIjoiNDUxOTg5OTMwMzY0MjI4MTA1IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmacafa85f7cb774509c9c634440f51a3fd3bf0a23b32f62d60d3895fa259f989e32
hovercard-subject-tagpull_request:2321324391
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,checks,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/checks
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python/cpython/pull/129765/checks
twitter:imagehttps://avatars.githubusercontent.com/u/47272787?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/47272787?s=400&v=4
og:image:altImprove import time modules by lazy import warnings. Remove unused warnings and struct from Lib/ctypes/_layout.py. My hyperfine benchmarks: First experiment in Main branch ➜ cpython git:(43e0240...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneacedec8b5f975d9e3d494ddd8f949b0b8a0de59d393901e26f73df9dcba80056
turbo-cache-controlno-cache
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 full-width-p-0
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release83c08c21cdda978090dc44364b71aa5bc6dcea79
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/129765/checks#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F129765%2Fchecks
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%2F129765%2Fchecks
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%2Fchecks&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/pull/129765/checks
Reloadhttps://github.com/python/cpython/pull/129765/checks
Reloadhttps://github.com/python/cpython/pull/129765/checks
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/129765/checks
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/129765/checks
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
donbarboshttps://github.com/donbarbos
python:mainhttps://github.com/python/cpython/tree/main
donbarbos:issue-118761https://github.com/donbarbos/cpython/tree/issue-118761
Conversation 13 https://github.com/python/cpython/pull/129765
Commits 9 https://github.com/python/cpython/pull/129765/commits
Checks 30 https://github.com/python/cpython/pull/129765/checks
Files changed https://github.com/python/cpython/pull/129765/files
Please reload this pagehttps://github.com/python/cpython/pull/129765/checks
Please reload this pagehttps://github.com/python/cpython/pull/129765/checks
Sign in for the full log viewhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F129765%2Fchecks
gh-118761: Improve import time by lazy import of warnings https://github.com/python/cpython/pull/129765/checks#top
Please reload this pagehttps://github.com/python/cpython/pull/129765/checks
Tests on: pull_request https://github.com/python/cpython/actions/runs/13293298803
Change detection / Create context from changed files https://github.com/python/cpython/actions/runs/13293298803/job/37119060388?pr=129765
Docs / Docs https://github.com/python/cpython/actions/runs/13293298803/job/37119088129?pr=129765
Docs / Doctest https://github.com/python/cpython/actions/runs/13293298803/job/37119088447?pr=129765
Check if Autoconf files are up to date https://github.com/python/cpython/actions/runs/13293298803/job/37119080029?pr=129765
Check if generated files are up to date https://github.com/python/cpython/actions/runs/13293298803/job/37119079480?pr=129765
Windows MSI${{ '' }} https://github.com/python/cpython/actions/runs/13293298803/job/37119082636?pr=129765
macOS / build and test (ghcr.io/cirruslabs/macos-runner:sonoma) https://github.com/python/cpython/actions/runs/13293298803/job/37119084965?pr=129765
macOS (free-threading) / build and test (ghcr.io/cirruslabs/macos-runner:sonoma) https://github.com/python/cpython/actions/runs/13293298803/job/37119084612?pr=129765
macOS / build and test (macos-13) https://github.com/python/cpython/actions/runs/13293298803/job/37119085292?pr=129765
Ubuntu / build and test (ubuntu-24.04) https://github.com/python/cpython/actions/runs/13293298803/job/37119086022?pr=129765
Ubuntu / build and test (ubuntu-22.04-arm) https://github.com/python/cpython/actions/runs/13293298803/job/37119085735?pr=129765
Ubuntu (free-threading) / build and test (ubuntu-24.04) https://github.com/python/cpython/actions/runs/13293298803/job/37119086607?pr=129765
Ubuntu (free-threading) / build and test (ubuntu-22.04-arm) https://github.com/python/cpython/actions/runs/13293298803/job/37119086330?pr=129765
Ubuntu (bolt) / build and test (ubuntu-24.04) https://github.com/python/cpython/actions/runs/13293298803/job/37119087712?pr=129765
Ubuntu SSL tests with OpenSSL (ubuntu-24.04, 3.0.15) https://github.com/python/cpython/actions/runs/13293298803/job/37119080579?pr=129765
Ubuntu SSL tests with OpenSSL (ubuntu-24.04, 3.1.7) https://github.com/python/cpython/actions/runs/13293298803/job/37119080936?pr=129765
Ubuntu SSL tests with OpenSSL (ubuntu-24.04, 3.2.3) https://github.com/python/cpython/actions/runs/13293298803/job/37119081319?pr=129765
Ubuntu SSL tests with OpenSSL (ubuntu-24.04, 3.3.2) https://github.com/python/cpython/actions/runs/13293298803/job/37119082014?pr=129765
Ubuntu SSL tests with OpenSSL (ubuntu-24.04, 3.4.0) https://github.com/python/cpython/actions/runs/13293298803/job/37119082321?pr=129765
WASI / build and test https://github.com/python/cpython/actions/runs/13293298803/job/37119084142?pr=129765
Hypothesis tests on Ubuntu https://github.com/python/cpython/actions/runs/13293298803/job/37119083807?pr=129765
Address sanitizer (ubuntu-24.04) https://github.com/python/cpython/actions/runs/13293298803/job/37119081656?pr=129765
Thread sanitizer / Thread sanitizer https://github.com/python/cpython/actions/runs/13293298803/job/37119086996?pr=129765
Thread sanitizer (free-threading) / Thread sanitizer https://github.com/python/cpython/actions/runs/13293298803/job/37119087292?pr=129765
Cross build Linux https://github.com/python/cpython/actions/runs/13293298803/job/37119083336?pr=129765
CIFuzz https://github.com/python/cpython/actions/runs/13293298803/job/37119082973?pr=129765
All required checks pass https://github.com/python/cpython/actions/runs/13293298803/job/37119798954?pr=129765
Lint on: pull_request https://github.com/python/cpython/actions/runs/13293298809
lint https://github.com/python/cpython/actions/runs/13293298809/job/37119059792?pr=129765
Check labels on: pull_request https://github.com/python/cpython/actions/runs/13293298812
DO-NOT-MERGE https://github.com/python/cpython/actions/runs/13293298812/job/37119059771?pr=129765
Unresolved review https://github.com/python/cpython/actions/runs/13293298812/job/37119059385?pr=129765
https://github.com/python/cpython/actions/runs/13293298803/job/37119060388
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.