diff options
author | Ngalim Siregar <ngalim.siregar@gmail.com> | 2019-08-03 05:46:02 (GMT) |
---|---|---|
committer | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2019-08-03 05:46:02 (GMT) |
commit | c5fa44944ee0a31a12b9a70776c7cb56c4dc39a2 (patch) | |
tree | a0cbe2dbb223339419432483b9c893654f06100c /Lib/importlib | |
parent | 8e568ef266a2805f9a6042003723d9c050830461 (diff) | |
download | cpython-c5fa44944ee0a31a12b9a70776c7cb56c4dc39a2.zip cpython-c5fa44944ee0a31a12b9a70776c7cb56c4dc39a2.tar.gz cpython-c5fa44944ee0a31a12b9a70776c7cb56c4dc39a2.tar.bz2 |
bpo-37444: Update differing exception between builtins and importlib (GH-14869)
Imports now raise `TypeError` instead of `ValueError` for relative import failures. This makes things consistent between `builtins.__import__` and `importlib.__import__` as well as using a more natural import for the failure.
https://bugs.python.org/issue37444
Automerge-Triggered-By: @brettcannon
Diffstat (limited to 'Lib/importlib')
-rw-r--r-- | Lib/importlib/_bootstrap.py | 2 | ||||
-rw-r--r-- | Lib/importlib/util.py | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py index 32deef1..5e2f520 100644 --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -873,7 +873,7 @@ def _resolve_name(name, package, level): """Resolve a relative module name to an absolute one.""" bits = package.rsplit('.', level - 1) if len(bits) < level: - raise ValueError('attempted relative import beyond top-level package') + raise ImportError('attempted relative import beyond top-level package') base = bits[0] return '{}.{}'.format(base, name) if name else base diff --git a/Lib/importlib/util.py b/Lib/importlib/util.py index 201e0f4..269a6fa 100644 --- a/Lib/importlib/util.py +++ b/Lib/importlib/util.py @@ -29,8 +29,8 @@ def resolve_name(name, package): if not name.startswith('.'): return name elif not package: - raise ValueError(f'no package specified for {repr(name)} ' - '(required for relative module names)') + raise ImportError(f'no package specified for {repr(name)} ' + '(required for relative module names)') level = 0 for character in name: if character != '.': |