Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0911c0d

Browse files
committed
Merge for issue #26367
2 parents d9dc530 + 4f38cb4 commit 0911c0d

4 files changed

Lines changed: 410 additions & 394 deletions

File tree

Lib/importlib/_bootstrap.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -922,9 +922,12 @@ def _sanity_check(name, package, level):
922922
raise TypeError('module name must be str, not {}'.format(type(name)))
923923
if level < 0:
924924
raise ValueError('level must be >= 0')
925-
if package:
925+
if level > 0:
926926
if not isinstance(package, str):
927927
raise TypeError('__package__ not set to a string')
928+
elif not package:
929+
raise ImportError('attempted relative import with no known parent '
930+
'package')
928931
elif package not in sys.modules:
929932
msg = ('Parent module {!r} not loaded, cannot perform relative '
930933
'import')

Lib/test/test_importlib/import_/test_relative_imports.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,11 @@ def test_relative_import_no_package(self):
218218
self.__import__('a', {'__package__': '', '__spec__': None},
219219
level=1)
220220

221+
def test_relative_import_no_package_exists_absolute(self):
222+
with self.assertRaises(ImportError):
223+
self.__import__('sys', {'__package__': '', '__spec__': None},
224+
level=1)
225+
221226

222227
(Frozen_RelativeImports,
223228
Source_RelativeImports

Misc/NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,9 @@ Core and Builtins
185185

186186
Library
187187
-------
188+
- Issue #26367: importlib.__init__() raises ImportError like
189+
builtins.__import__() when ``level`` is specified but without an accompanying
190+
package specified.
188191

189192
- Issue #26309: In the "socketserver" module, shut down the request (closing
190193
the connected socket) when verify_request() returns false. Patch by Aviv

0 commit comments

Comments
 (0)