Commit graph

528 commits

Author SHA1 Message Date
Philip Jenvey
731d48a65f update docstring per the extension package fix, refactor 2012-08-10 11:53:54 -07:00
Brett Cannon
ac9f2f3de3 Issue #15576: Allow extension modules to be a package's __init__
module again. Also took the opportunity to stop accidentally exporting
_imp.extension_suffixes() as public.
2012-08-10 13:47:54 -04:00
Brett Cannon
f4dc9204cc Issue #15502: Finish bringing importlib.abc in line with the current
state of the import system. Also make importlib.invalidate_caches()
work with sys.meta_path instead of sys.path_importer_cache to
completely separate the path-based import system from the overall
import system.

Patch by Eric Snow.
2012-08-10 12:21:12 -04:00
Brett Cannon
cb4996afe4 Issue #15471: Don't use mutable object as default values for the
parameters of importlib.__import__().
2012-08-06 16:34:44 -04:00
Nick Coghlan
4941774f59 Issue #15502: Bring the importlib.PathFinder docs and docstring more in line with the new import system documentation, and fix various parts of the new docs that weren't quite right given PEP 420 or were otherwise a bit misleading. Also note the key terminology problem still being discussed in the issue 2012-08-02 23:03:58 +10:00
Nick Coghlan
ff79486bb5 Close #15519: Properly expose WindowsRegistryFinder in importlib and bring the name into line with normal import terminology. Original patch by Eric Snow 2012-08-02 21:45:24 +10:00
Nick Coghlan
8a9080feff Issue #15502: Bring the importlib ABCs into line with the current state of the import protocols given PEP 420. Original patch by Eric Snow. 2012-08-02 21:26:03 +10:00
Barry Warsaw
38f75cbc00 Typo. 2012-07-31 16:39:43 -04:00
Barry Warsaw
9a5af1288d merge 2012-07-31 16:03:25 -04: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
Barry Warsaw
dee609c09f merged 2012-07-29 16:40:04 -04:00
Barry Warsaw
d7d2194ea1 Integration of importdocs from the features/pep-420 repo. 2012-07-29 16:36:17 -04:00
Nick Coghlan
5ee9892406 Close #15425: Eliminate more importlib related traceback noise 2012-07-29 20:30:36 +10:00
Martin v. Löwis
e3010a8d12 Issue #14578: Support modules registered in the Windows registry again.
Patch by Amaury Forgeot d'Arc.
2012-07-28 21:33:05 +02:00
Brett Cannon
45a5e3afe5 Issue #15168: Move importlb.test to test.test_importlib.
This should make the Linux distros happy as it is now easier to leave
importlib's tests out of their base Python distribution.
2012-07-20 14:48:53 -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
76e077001d Close #15387: inspect.getmodulename() now uses a new importlib.machinery.all_suffixes() API rather than the deprecated inspect.getmoduleinfo() 2012-07-18 23:14:57 +10:00
Nick Coghlan
2824cb507d Issue #15343: A lot more than just unicode decoding can go wrong when retrieving a source file 2012-07-15 22:12:14 +10:00
Brett Cannon
a6473f9cfd Issues #15169, #14599: Make PyImport_ExecCodeModuleWithPathnames() use
Lib/imp.py for imp.source_from_cache() instead of its own C version.

Also change PyImport_ExecCodeModuleObject() to not infer the source
path from the bytecode path like
PyImport_ExecCodeModuleWithPathnames() does. This makes the function
less magical.

This also has the side-effect of removing all uses of MAXPATHLEN in
Python/import.c which can cause failures on really long filenames.
2012-07-13 13:57:03 -04:00
Brett Cannon
461c813164 Issue #15111: When a module was imported using a 'from import'
statement (e.g. ``from distutils import msvc9compiler``) that triggers
an ImportError of its own (e.g. the non-existence of winreg), let that
exception propagate instead of raising a generic ImportError for the
module being requested (e.g. msvc9compiler).
2012-07-10 10:05:00 -04:00
Brett Cannon
77b2abd094 Issue #15167 (as part of #13959): imp.get_magic() is no implemented in
Lib/imp.py.
2012-07-09 16:09:00 -04:00
Brett Cannon
19a2f5961c Issue #15056: imp.cache_from_source() and source_from_cache() raise
NotimplementedError when sys.implementation.cache_tag is None.

Thanks to Pranav Ravichandran for taking an initial stab at the patch.
2012-07-09 13:58:07 -04:00
Amaury Forgeot d'Arc
1ced17dfe9 Issue #15110: Copy same docstring as other '_exec_module' methods. 2012-07-08 21:03:01 +02:00
Amaury Forgeot d'Arc
ae7b8f07c1 Issue #15110: Also hide importlib frames when importing a builtin module fails. 2012-07-08 20:52:38 +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
Florent Xicluna
79d79a0f29 Minor refactoring in importlib._bootstrap, and fix the '_wrap' docstring. 2012-07-07 13:16:44 +02:00
Brett Cannon
53089c6e91 Issue #15210: Greatly simplify the test for supporting importlib
working without _frozen_importlib by moving to an import over a direct
access in sys.modules.
2012-07-04 14:03:40 -04:00
Brett Cannon
98979b85e7 Issue #15166: Re-implement imp.get_tag() using sys.implementation.
Also eliminates some C code in Python/import.c as well.

Patch by Eric Snow with verification by comparing against another
patch from Jeff Knupp.
2012-07-02 15:13:11 -04:00
Brett Cannon
8e2f5564b3 Issue #15210: If _frozen_importlib is not found in sys.modules by
importlib.__init__, then catch the KeyError raised, not ImportError.
2012-07-02 14:53:10 -04:00
Brett Cannon
1e331560ee Closes #15030: Make importlib.abc.PyPycLoader respect the new .pyc
file size header field.

Thanks to Marc Abramowitz and Ronan Lamy for helping out with various
parts of the patch.
2012-07-02 14:35:34 -04:00
Eric V. Smith
b10951549b Use assertIsNone. Thanks Terry Reedy. 2012-06-28 06:15:01 -04:00
Eric V. Smith
faae3adbb9 Changed importlib tests to use assertIs, assertIsInstance, etc., instead of just assertTrue. 2012-06-27 15:26:26 -04:00
Eric V. Smith
e51a36922f Fixes issue 15039: namespace packages are no longer imported in preference to modules of the same name. 2012-06-24 19:13:55 -04:00
Antoine Pitrou
310f95b04d A better repr() for FileFinder 2012-06-23 02:12:56 +02:00
Antoine Pitrou
d5a1a21a89 Prevent test_inspect from keeping alive a ton of frames and local variables by way of a global variable keeping a reference to a traceback.
Should fix some buildbot failures.
2012-06-17 23:18:07 +02: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
Brett Cannon
ea0b823940 Issue #14938: importlib.abc.SourceLoader.is_package() now takes the
module name into consideration when determining whether a module is a
package or not. This prevents importing a module's __init__ module
directly and having it considered a package, which can lead to
duplicate sub-modules.

Thanks to Ronan Lamy for reporting the bug.
2012-06-15 20:00:53 -04:00
Nick Coghlan
5c6eba3a93 Tweak importlib._bootstrap to avoid zero-argument super so I can work on issue #14857 without breaking imports 2012-05-27 17:49:58 +10:00
Brett Cannon
d785cb3955 Remove some redundant decorators. 2012-05-26 14:28:21 -04:00
Eric V. Smith
283d0ba45d Whitespace cleanup. 2012-05-24 20:22:10 -04:00
Eric V. Smith
984b11f88f issue 14660: Implement PEP 420, namespace packages. 2012-05-24 20:21:04 -04:00
Antoine Pitrou
ea3eb88bca Issue #9260: A finer-grained import lock.
Most of the import sequence now uses per-module locks rather than the
global import lock, eliminating well-known issues with threads and imports.
2012-05-17 18:55:59 +02:00
Brett Cannon
d200bf534b Add importlib.util.resolve_name(). 2012-05-13 13:45:09 -04:00
Brett Cannon
ee78a2b51c Issue #13959: Introduce importlib.find_loader().
The long-term goal is to deprecate imp.find_module() in favour of this
API, but it will take some time as some APIs explicitly return/use what
imp.find_module() returns.
2012-05-12 17:43:17 -04:00
Brett Cannon
c049952de7 Issue #13959: Have
importlib.abc.FileLoader.load_module()/get_filename() and
importlib.machinery.ExtensionFileLoader.load_module() have their
single argument be optional as the loader's constructor has all the
ncessary information.

This allows for the deprecation of
imp.load_source()/load_compile()/load_package().
2012-05-11 14:48:41 -04:00
Brett Cannon
cb66eb0dec Issue #13959: Deprecate imp.get_suffixes() for new attributes on
importlib.machinery that provide the suffix details for import.
The attributes were not put on imp so as to compartmentalize
everything importlib needs for setting up imports in
importlib.machinery.

This also led to an indirect deprecation of inspect.getmoduleinfo() as
it directly returned imp.get_suffix's returned tuple which no longer
makes sense.
2012-05-11 12:58:42 -04:00
Brett Cannon
810c64df8f Issue #14764: Update importlib.test.benchmark to work in a world where
import machinery is no longer implicit.
2012-05-11 11:12:00 -04:00
Antoine Pitrou
6efa50a384 Issue #14583: Fix importlib bug when a package's __init__.py would first import one of its modules then raise an error. 2012-05-07 21:41:59 +02:00
Brett Cannon
feccc09952 Clean up a docstring. 2012-05-04 16:47:54 -04:00
Brett Cannon
f19c191067 Jython-friendly tweak. 2012-05-04 15:46:04 -04:00