]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.11] GH-102700: allow built-in modules to be submodules (GH-103162) (GH-103322)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 6 Apr 2023 23:06:02 +0000 (16:06 -0700)
committerGitHub <noreply@github.com>
Thu, 6 Apr 2023 23:06:02 +0000 (16:06 -0700)
GH-102700: allow built-in modules to be submodules (GH-103162)
(cherry picked from commit 5d08c3ff7d89ca11556f18663a372f6c12435504)

Co-authored-by: Brett Cannon <brett@python.org>
Lib/importlib/_bootstrap.py
Lib/test/test_importlib/builtin/test_finder.py
Misc/NEWS.d/next/Core and Builtins/2023-04-01-00-46-31.gh-issue-102700.493NB4.rst [new file with mode: 0644]

index afb95f4e1df8692164aed45a885124a4e66b9b3c..ee93ebc3960ca3d779b812d50c6a3af8297ebccf 100644 (file)
@@ -747,8 +747,6 @@ class BuiltinImporter:
 
     @classmethod
     def find_spec(cls, fullname, path=None, target=None):
-        if path is not None:
-            return None
         if _imp.is_builtin(fullname):
             return spec_from_loader(fullname, cls, origin=cls._ORIGIN)
         else:
index a4869e07b9c0c2afca0fdb8a99700478a3c74f45..81dc5a3699d952514f6045029f18cb81a28d4468 100644 (file)
@@ -37,13 +37,6 @@ class FindSpecTests(abc.FinderTests):
         spec = self.machinery.BuiltinImporter.find_spec(name)
         self.assertIsNone(spec)
 
-    def test_ignore_path(self):
-        # The value for 'path' should always trigger a failed import.
-        with util.uncache(util.BUILTINS.good_name):
-            spec = self.machinery.BuiltinImporter.find_spec(util.BUILTINS.good_name,
-                                                            ['pkg'])
-            self.assertIsNone(spec)
-
 
 (Frozen_FindSpecTests,
  Source_FindSpecTests
@@ -77,16 +70,6 @@ class FinderTests(abc.FinderTests):
             loader = self.machinery.BuiltinImporter.find_module('importlib')
         self.assertIsNone(loader)
 
-    def test_ignore_path(self):
-        # The value for 'path' should always trigger a failed import.
-        with util.uncache(util.BUILTINS.good_name):
-            with warnings.catch_warnings():
-                warnings.simplefilter("ignore", DeprecationWarning)
-                loader = self.machinery.BuiltinImporter.find_module(
-                                                        util.BUILTINS.good_name,
-                                                        ['pkg'])
-            self.assertIsNone(loader)
-
 
 (Frozen_FinderTests,
  Source_FinderTests
diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-04-01-00-46-31.gh-issue-102700.493NB4.rst b/Misc/NEWS.d/next/Core and Builtins/2023-04-01-00-46-31.gh-issue-102700.493NB4.rst
new file mode 100644 (file)
index 0000000..4695148
--- /dev/null
@@ -0,0 +1 @@
+Allow built-in modules to be submodules. This allows submodules to be statically linked into a CPython binary.