diff --git a/Lib/importlib/__init__.py b/Lib/importlib/__init__.py index ff7de6f4f5d..3a968c56322 100644 --- a/Lib/importlib/__init__.py +++ b/Lib/importlib/__init__.py @@ -59,7 +59,7 @@ from ._bootstrap import __import__ -from _imp import lazy_import, set_lazy_imports +from _imp import set_lazy_imports def invalidate_caches(): diff --git a/Lib/test/test_import/__init__.py b/Lib/test/test_import/__init__.py index cff4664fa1e..18ee355989a 100644 --- a/Lib/test/test_import/__init__.py +++ b/Lib/test/test_import/__init__.py @@ -2790,7 +2790,7 @@ def test_lazy_import_pkg_cross_import(self): g = test.test_import.data.lazy_imports.pkg.c.get_globals() self.assertEqual(type(g["x"]), int) - self.assertEqual(type(g["b"]), importlib.lazy_import) + self.assertEqual(type(g["b"]), types.LazyImportType) class TestSinglePhaseSnapshot(ModuleSnapshot): """A representation of a single-phase init module for testing. diff --git a/Modules/_typesmodule.c b/Modules/_typesmodule.c index df6b4c93cb8..6c9e7a0a3ba 100644 --- a/Modules/_typesmodule.c +++ b/Modules/_typesmodule.c @@ -2,6 +2,7 @@ #include "Python.h" #include "pycore_descrobject.h" // _PyMethodWrapper_Type +#include "pycore_lazyimportobject.h" // PyLazyImport_Type #include "pycore_namespace.h" // _PyNamespace_Type #include "pycore_object.h" // _PyNone_Type, _PyNotImplemented_Type #include "pycore_unionobject.h" // _PyUnion_Type @@ -35,6 +36,7 @@ _types_exec(PyObject *m) EXPORT_STATIC_TYPE("GetSetDescriptorType", PyGetSetDescr_Type); // LambdaType is the same as FunctionType EXPORT_STATIC_TYPE("LambdaType", PyFunction_Type); + EXPORT_STATIC_TYPE("LazyImportType", PyLazyImport_Type); EXPORT_STATIC_TYPE("MappingProxyType", PyDictProxy_Type); EXPORT_STATIC_TYPE("MemberDescriptorType", PyMemberDescr_Type); EXPORT_STATIC_TYPE("MethodDescriptorType", PyMethodDescr_Type); diff --git a/Objects/lazyimportobject.c b/Objects/lazyimportobject.c index 210e01f9c80..bcd2a5f6e15 100644 --- a/Objects/lazyimportobject.c +++ b/Objects/lazyimportobject.c @@ -144,8 +144,8 @@ static PyMethodDef lazy_methods[] = { PyTypeObject PyLazyImport_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) - "lazy_import", /* tp_name */ - sizeof(PyLazyImportObject), /* tp_basicsize */ + "LazyImport", /* tp_name */ + sizeof(PyLazyImportObject), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)lazy_import_dealloc, /* tp_dealloc */ 0, /* tp_print */ diff --git a/Python/import.c b/Python/import.c index 3d5aa53ae70..abd734a29a1 100644 --- a/Python/import.c +++ b/Python/import.c @@ -5377,11 +5377,6 @@ imp_module_exec(PyObject *module) return -1; } - if (PyModule_AddObjectRef(module, "lazy_import", - (PyObject *)&PyLazyImport_Type) < 0) { - return -1; - } - return 0; }