]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
Issue #15767: Introduce ModuleNotFoundError, a subclass of
authorBrett Cannon <brett@python.org>
Wed, 12 Jun 2013 20:59:46 +0000 (16:59 -0400)
committerBrett Cannon <brett@python.org>
Wed, 12 Jun 2013 20:59:46 +0000 (16:59 -0400)
commitb1611e2772af2c6eb73a6b3d04b3dbb43308fa6c
tree7cd26cc5f09f341a69572c40f16638053ae86d08
parent638ce0779b4dceea39c2f77346aeab9824e48548
Issue #15767: Introduce ModuleNotFoundError, a subclass of
ImportError.

The exception is raised by import when a module could not be found.
Technically this is defined as no viable loader could be found for the
specified module. This includes ``from ... import`` statements so that
the module usage is consistent for all situations where import
couldn't find what was requested.

This should allow for the common idiom of::

  try:
    import something
  except ImportError:
    pass

to be updated to using ModuleNotFoundError and not accidentally mask
ImportError messages that should propagate (e.g. issues with a
loader).

This work was driven by the fact that the ``from ... import``
statement needed to be able to tell the difference between an
ImportError that simply couldn't find a module (and thus silence the
exception so that ceval can raise it) and an ImportError that
represented an actual problem.
17 files changed:
Doc/c-api/exceptions.rst
Doc/library/exceptions.rst
Doc/whatsnew/3.4.rst
Include/pyerrors.h
Lib/importlib/_bootstrap.py
Lib/pydoc.py
Lib/test/exception_hierarchy.txt
Lib/test/test_exceptions.py
Lib/test/test_import.py
Lib/test/test_importlib/import_/test_api.py
Lib/test/test_importlib/import_/test_fromlist.py
Lib/test/test_pydoc.py
Lib/test/test_site.py
Misc/NEWS
Objects/exceptions.c
Python/ceval.c
Python/importlib.h