]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-142349: Implement PEP 810 - Explicit lazy imports (#142351)
authorPablo Galindo Salgado <Pablogsal@gmail.com>
Thu, 12 Feb 2026 00:15:33 +0000 (00:15 +0000)
committerGitHub <noreply@github.com>
Thu, 12 Feb 2026 00:15:33 +0000 (00:15 +0000)
commit46d5106cfa903329821c097c3bf309e3efcd718f
tree1b52126bfaede2750c2e17d7e3fe5999db2cdecc
parentcac0c98450c27dbb6e185ab1c05e1d51d34135d9
gh-142349: Implement PEP 810 - Explicit lazy imports (#142351)

Co-authored-by: T. Wouters <twouters@meta.com >
Co-authored-by: Brittany Reynoso <breynoso@meta.com>
Co-authored-by: Dino Viehland <dinoviehland@meta.com>
138 files changed:
Doc/c-api/exceptions.rst
Doc/c-api/import.rst
Doc/library/ast.rst
Doc/library/exceptions.rst
Doc/library/sys.rst
Doc/library/types.rst
Doc/reference/lexical_analysis.rst
Doc/reference/simple_stmts.rst
Doc/using/cmdline.rst
Doc/whatsnew/3.15.rst
Grammar/python.gram
Include/cpython/initconfig.h
Include/import.h
Include/internal/pycore_ast.h
Include/internal/pycore_ast_state.h
Include/internal/pycore_ceval.h
Include/internal/pycore_compile.h
Include/internal/pycore_dict.h
Include/internal/pycore_global_objects_fini_generated.h
Include/internal/pycore_global_strings.h
Include/internal/pycore_import.h
Include/internal/pycore_interp_structs.h
Include/internal/pycore_lazyimportobject.h [new file with mode: 0644]
Include/internal/pycore_magic_number.h
Include/internal/pycore_moduleobject.h
Include/internal/pycore_runtime_init_generated.h
Include/internal/pycore_symtable.h
Include/internal/pycore_unicodeobject_generated.h
Include/pyerrors.h
Lib/_compat_pickle.py
Lib/_pyrepl/utils.py
Lib/dis.py
Lib/idlelib/colorizer.py
Lib/idlelib/idle_test/test_colorizer.py
Lib/importlib/_bootstrap.py
Lib/keyword.py
Lib/rlcompleter.py
Lib/test/.ruff.toml
Lib/test/exception_hierarchy.txt
Lib/test/test_ast/data/ast_repr.txt
Lib/test/test_ast/snippets.py
Lib/test/test_ast/test_ast.py
Lib/test/test_capi/test_config.py
Lib/test/test_dis.py
Lib/test/test_embed.py
Lib/test/test_import/data/lazy_imports/basic2.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/basic_compatibility_mode.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/basic_compatibility_mode_relative.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/basic_compatibility_mode_used.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/basic_dir.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/basic_from_unused.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/basic_unused.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/basic_used.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/broken_attr_module.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/broken_module.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/compatibility_mode_func.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/compatibility_mode_try_except.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/dunder_lazy_import.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/dunder_lazy_import_builtins.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/dunder_lazy_import_used.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/eager_import_func.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/global_filter.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/global_filter_from.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/global_filter_from_true.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/global_filter_true.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/global_off.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/global_on.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/globals_access.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/lazy_class_body.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/lazy_compat_from.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/lazy_future_import.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/lazy_get_value.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/lazy_import_func.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/lazy_import_pkg.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/lazy_try_except.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/lazy_try_except_from.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/lazy_try_except_from_star.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/lazy_with.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/lazy_with_from.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/modules_dict.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/modules_getattr.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/modules_getattr_other.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/multi_from_import.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/pkg/__init__.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/pkg/b.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/pkg/bar.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/pkg/c.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/relative_lazy.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/relative_lazy_from.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/try_except_eager.py [new file with mode: 0644]
Lib/test/test_import/data/lazy_imports/try_except_eager_from.py [new file with mode: 0644]
Lib/test/test_import/test_lazy_imports.py [new file with mode: 0644]
Lib/test/test_pyrepl/test_utils.py
Lib/test/test_syntax.py
Lib/test/test_sys.py
Lib/test/test_traceback.py
Lib/test/test_types.py
Lib/traceback.py
Lib/types.py
Makefile.pre.in
Misc/NEWS.d/next/Core_and_Builtins/2025-12-06-15-46-32.gh-issue-142349.IdTuYL.rst [new file with mode: 0644]
Modules/_testcapi/import.c
Modules/_testinternalcapi/test_cases.c.h
Modules/_typesmodule.c
Objects/dictobject.c
Objects/exceptions.c
Objects/lazyimportobject.c [new file with mode: 0644]
Objects/moduleobject.c
PCbuild/_freeze_module.vcxproj
PCbuild/_freeze_module.vcxproj.filters
PCbuild/pythoncore.vcxproj
PCbuild/pythoncore.vcxproj.filters
Parser/Python.asdl
Parser/action_helpers.c
Parser/parser.c
Parser/pegen.h
Programs/test_frozenmain.h
Python/Python-ast.c
Python/bltinmodule.c
Python/bytecodes.c
Python/ceval.c
Python/ceval.h
Python/clinic/bltinmodule.c.h
Python/clinic/import.c.h
Python/clinic/sysmodule.c.h
Python/codegen.c
Python/compile.c
Python/executor_cases.c.h
Python/generated_cases.c.h
Python/import.c
Python/initconfig.c
Python/jit.c
Python/pylifecycle.c
Python/specialize.c
Python/symtable.c
Python/sysmodule.c
Tools/c-analyzer/cpython/globals-to-fix.tsv
Tools/jit/template.c