Commit Graph

151 Commits

Author SHA1 Message Date
Brett Cannon b1611e2772 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.
2013-06-12 16:59:46 -04:00
Brett Cannon 997487d5d7 Issue #7732: Move an imp.find_module test from test_import to
test_imp.
2013-06-07 13:26:53 -04:00
Benjamin Peterson 7d110042c5 raise an ImportError (rather than fatal) when __import__ is not found in __builtins__ (closes #17867) 2013-04-29 09:08:14 -04:00
Nick Coghlan f1465f0535 Close #17731: Clean up properly in test_import 2013-04-15 22:56:51 +10:00
Ezio Melotti e5e7a7cbf4 #11420: merge with 3.2. 2013-03-16 21:49:20 +02:00
Ezio Melotti c28f6fa505 #11420: make test suite pass with -B/DONTWRITEBYTECODE set. Initial patch by Thomas Wouters. 2013-03-16 19:48:51 +02:00
Nick Coghlan 11d752e374 Remove unused import 2012-10-19 23:37:16 +10:00
Nick Coghlan eb8d627bbd Issue #6074: Apply an appropriate fix for importlib based imports 2012-10-19 23:32:00 +10:00
Benjamin Peterson d79ac0fad7 merge 3.2 2012-09-25 11:03:27 -04:00
Benjamin Peterson d388c4e02f use modern conditional syntax 2012-09-25 11:01:41 -04:00
Nick Coghlan 5d0612411e Issue #15828: Restore support for C extension modules in imp.load_module() 2012-09-01 00:13:45 +10:00
Nick Coghlan a508770e20 Close #2501: Permission bits are once again correctly copied from the source file to the cached bytecode file. Test by Eric Snow. 2012-08-24 18:32:40 +10:00
Brett Cannon 7385adc84c Issue #15715: Ignore failed imports triggered by the use of fromlist.
When the fromlist argument is specified for __import__() and the
attribute doesn't already exist, an import is attempted. If that fails
(e.g. module doesn't exist), the ImportError will now be silenced (for
backwards-compatibility). This *does not* affect
``from ... import ...`` statements.

Thanks to Eric Snow for the patch and Simon Feltman for reporting the
regression.
2012-08-17 13:21:16 -04:00
Nick Coghlan 336d9ac6bd Issue #15425: Don't rely on the assumption that the current working directory is on sys.path (this will hopefully appease the XP buildbots) 2012-07-31 21:39:42 +10:00
Nick Coghlan 42c0766a53 Close #15486: Simplify the mechanism used to remove importlib frames from tracebacks when they just introduce irrelevant noise 2012-07-31 21:14:18 +10:00
Nick Coghlan 5ee9892406 Close #15425: Eliminate more importlib related traceback noise 2012-07-29 20:30:36 +10:00
Jason R. Coombs d0118e16a1 Restored test by specifying that the symlink links to a target (currently required for Windows symlinks). See issue15093 for details. 2012-07-26 15:21:17 -04:00
Brett Cannon 86ae981da9 Fix an import from the importlib.test move. 2012-07-20 15:40:57 -04:00
Brett Cannon 6ee9695270 Issue #15091: Call importlib.invalidate_caches() and reactivate a test
of importing a symlinked package.
2012-07-20 14:22:04 -04:00
Brett Cannon ba52586f76 Running the importlib tests from test_import is redundant as there is
no difference anymore between __import__ and importlib.__import__.
2012-07-20 14:01:34 -04:00
Nick Coghlan be7e49fd82 Close #15386: There was a loophole that meant importlib.machinery and imp would sometimes reference an uninitialised copy of importlib._bootstrap 2012-07-20 23:40:09 +10:00
Nick Coghlan 62b4136277 Fix broken test and replace redundant generator with a tuple 2012-10-20 00:03:46 +10:00
Nick Coghlan c71b4c7198 Issue #6074: Actually delete the source file in the test as intended 2012-10-19 23:38:36 +10:00
Nick Coghlan 34937ce249 Issue #6074: Forward port Windows read-only source file fix from 2.7 2012-10-19 22:38:14 +10:00
Antoine Pitrou c27ace688c Issue #15338: skip test_UNC_path when the current user doesn't have enough permissions to access the path. 2012-07-13 20:59:19 +02:00
Antoine Pitrou 68f4247b65 Issue #15338: skip test_UNC_path when the current user doesn't have enough permissions to access the path. 2012-07-13 20:54:42 +02:00
Antoine Pitrou 5df0204091 For diagnosis, try to list the directory first 2012-07-12 19:50:03 +02:00
Antoine Pitrou f189e80f23 Small improvements to test_unc_path 2012-07-12 19:48:49 +02:00
Antoine Pitrou 021548cf4c Try to fix or diagnose buildbot failures 2012-07-12 19:21:43 +02:00
Antoine Pitrou 6803855ecf Fix test failure under Windows 2012-07-08 13:16:15 +02:00
Antoine Pitrou bc07a5c913 Issue #15110: Fix the tracebacks generated by "import xxx" to not show the importlib stack frames. 2012-07-08 12:01:27 +02:00
Antoine Pitrou d4daa87129 Properly cleanup pep3147 modules in test_import 2012-06-23 18:09:55 +02:00
Jason R. Coombs 42c9b04278 Prefer assertEqual to simply assert per recommendation in issue6727.
Clarified comment on disabled code to reference issue15093.
2012-06-20 10:24:24 -04:00
Antoine Pitrou 48114b952b Issue #14657: The frozen instance of importlib used for bootstrap is now also the module imported as importlib._bootstrap. 2012-06-17 22:33:38 +02:00
Jason R. Coombs 658dc3f746 Disable test on Unix. Causes buildbots to fail. See Issue #15091 2012-06-17 05:06:16 -04:00
Jason R. Coombs 71fde31da3 Adding test from issue6727 demonstrating that symlink import issue does not occur here in 3.3 2012-06-17 03:53:47 -04:00
Eric V. Smith 984b11f88f issue 14660: Implement PEP 420, namespace packages. 2012-05-24 20:21:04 -04:00
Brett Cannon b8c0206bd4 Issue #14637: Fix the UNC import test under Windows to actually use
the UNC path. Also clean up sys.path and invalidate finder caches.

Thanks to Vinay Sajip for spotting the use of the wrong path.
2012-04-21 19:11:58 -04:00
Brett Cannon 9e924ed1ac Fix a cleanup. 2012-04-20 17:34:59 -04:00
Brett Cannon bbdc9cd3d2 Use a skipUnless decorator instead of conditional renaming. 2012-04-20 16:29:39 -04:00
Brett Cannon 1032af95ff Issue #14585: test_import now runs all tests under
importlib.test.import_ using builtins.__import__() instead of just the
relative import tests.
2012-04-20 15:52:17 -04:00
Brett Cannon f0434e647a Issue #14599: Generalize a test for ImportError.path and add support
in Python/dynload_shlibs.c.

This should fix the remaining importlib test failure on Windows.
Support in AIX and HP-UX will be in a separate checkin.
2012-04-20 15:22:50 -04:00
Brett Cannon a2898c1d79 Try to debug a Windows failure on the buildbots. 2012-04-20 13:34:35 -04:00
Brett Cannon 4132368d0a Issue #14599: Fix an import caching race condition. 2012-04-16 20:50:33 -04:00
Brian Curtin b206a80dab Fix #10854. Make use of the new path and name attributes on ImportError
for extension modules on Windows.
2012-04-16 00:10:17 -05:00
Brett Cannon 73def61edd Try to fix a sporadic test failure from what is probably a caching race condition. 2012-04-14 14:38:19 -04:00
Brett Cannon fd0741555b Issue #2377: Make importlib the implementation of __import__().
importlib._bootstrap is now frozen into Python/importlib.h and stored
as _frozen_importlib in sys.modules. Py_Initialize() loads the frozen
code along with sys and imp and then uses _frozen_importlib._install()
to set builtins.__import__() w/ _frozen_importlib.__import__().
2012-04-14 14:10:13 -04:00
Antoine Pitrou c541f8ef40 Issue #14043: Speed up importlib's _FileFinder by at least 8x, and add a new importlib.invalidate_caches() function.
importlib is now often faster than imp.find_module() at finding modules.
2012-02-20 01:48:16 +01:00
Antoine Pitrou 581616624d Port import fixes from 2.7. 2012-01-25 18:06:07 +01:00
Antoine Pitrou 33d15f7c85 Port import fixes from 2.7. 2012-01-25 18:01:45 +01:00