summaryrefslogtreecommitdiffstats
path: root/Lib/importlib
Commit message (Collapse)AuthorAgeFilesLines
...
* | Issue #17907: touch up the code for imp.new_module().Brett Cannon2013-06-152-10/+3
| |
* | Issue #18192: Introduce importlib.util.MAGIC_NUMBER and document theBrett Cannon2013-06-142-4/+5
| | | | | | | | deprecation of imp.get_magic().
* | Issue #18193: Add importlib.reload(), documenting (but notBrett Cannon2013-06-141-1/+33
| | | | | | | | | | | | implementing in code) the deprecation of imp.reload(). Thanks to Berker Peksag for the patch.
* | Issue #18200: Update the stdlib (except tests) to useBrett Cannon2013-06-142-2/+2
| | | | | | | | ModuleNotFoundError.
* | Issue #15767: Touch up ModuleNotFoundError usage by import.Brett Cannon2013-06-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Forgot to raise ModuleNotFoundError when None is found in sys.modules. This led to introducing the C function PyErr_SetImportErrorSubclass() to make setting ModuleNotFoundError easier. Also updated the reference docs to mention ModuleNotFoundError appropriately. Updated the docs for ModuleNotFoundError to mention the None in sys.modules case. Lastly, it was noticed that PyErr_SetImportError() was not setting an exception when returning None in one case. That issue is now fixed.
* | Issue #15767: Introduce ModuleNotFoundError, a subclass ofBrett Cannon2013-06-121-11/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | explanatory commentBrett Cannon2013-06-111-1/+1
| |
* | typo fixBrett Cannon2013-06-111-1/+1
| |
* | tweak exception message (again)Brett Cannon2013-06-051-2/+2
| |
* | Tweak at the suggestion of Ezio Melotti for exception messages whenBrett Cannon2013-06-041-2/+2
| | | | | | | | EOF is hit while trying to read the header of a bytecode file.
* | fix whitespaceBrett Cannon2013-05-311-1/+1
| |
* | Issues #18088, 18089: IntroduceBrett Cannon2013-05-313-74/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | importlib.abc.Loader.init_module_attrs() and implement importlib.abc.InspectLoader.load_module(). The importlib.abc.Loader.init_module_attrs() method sets the various attributes on the module being loaded. It is done unconditionally to support reloading. Typically people used importlib.util.module_for_loader, but since that's a decorator there was no way to override it's actions, so init_module_attrs() came into existence to allow for overriding. This is also why module_for_loader is now pending deprecation (having its other use replaced by importlib.util.module_to_load). All of this allowed for importlib.abc.InspectLoader.load_module() to be implemented. At this point you can now implement a loader with nothing more than get_code() (which only requires get_source(); package support requires is_package()). Thanks to init_module_attrs() the implementation of load_module() is basically a context manager containing 2 methods calls, a call to exec(), and a return statement.
* | Docstring cleanupBrett Cannon2013-05-311-2/+3
| |
* | Fix for last commit on adding reset_name to module_to_loadBrett Cannon2013-05-311-3/+6
| |
* | Add a reset_name argument to importlib.util.module_to_load in order toBrett Cannon2013-05-311-1/+13
| | | | | | | | | | control whether to reset the module's __name__ attribute in case a reload is being done.
* | Rename importlib.util.ModuleManager to module_to_load so that the nameBrett Cannon2013-05-302-3/+10
| | | | | | | | explains better what the context manager is providing.
* | Issue #18070: importlib.util.module_for_loader() now sets __loader__Brett Cannon2013-05-281-32/+3
| | | | | | | | | | and __package__ unconditionally in order to do the right thing for reloading.
* | Introduce importlib.util.ModuleManager which is a context manager toBrett Cannon2013-05-282-5/+34
| | | | | | | | | | | | | | | | handle providing (and cleaning up if needed) the module to be loaded. A future commit will use the context manager in Lib/importlib/_bootstrap.py and thus why the code is placed there instead of in Lib/importlib/util.py.
* | Issue #18072: Implement get_code() for importlib.abc.InspectLoader andBrett Cannon2013-05-281-5/+25
| | | | | | | | ExecutionLoader.
* | Move importlib.abc.SourceLoader.source_to_code() to InspectLoader.Brett Cannon2013-05-261-0/+7
| | | | | | | | | | | | | | While the previous location was fine, it makes more sense to have the method higher up in the inheritance chain, especially at a point where get_source() is defined which is the earliest source_to_code() could programmatically be used in the inheritance tree in importlib.abc.
* | rather than passing locals to the class body, just execute the class body in ↵Benjamin Peterson2013-05-161-1/+2
| | | | | | | | the proper environment
* | hide the __class__ closure from the class body (#12370)Benjamin Peterson2013-05-151-1/+2
| |
* | #17115,17116: Have modules initialize the __package__ and __loader__Brett Cannon2013-05-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | attributes to None. The long-term goal is for people to be able to rely on these attributes existing and checking for None to see if they have been set. Since import itself sets these attributes when a loader does not the only instances when the attributes are None are from someone overloading __import__() and not using a loader or someone creating a module from scratch. This patch also unifies module initialization. Before you could have different attributes with default values depending on how the module object was created. Now the only way to not get the same default set of attributes is to circumvent initialization by calling ModuleType.__new__() directly.
* | check local class namespace before reaching for cells (closes #17853)Benjamin Peterson2013-04-301-1/+3
| |
* | Issue #17244: Don't mask exceptions raised during the creation ofBrett Cannon2013-04-141-7/+13
| | | | | | | | | | | | bytecode files in py_compile. Thanks to Arfrever Frehtes Taifersar Arahesis for the bug report.
* | Issue #17093,17566,17567: Methods from classes in importlib.abc now raise/returnBrett Cannon2013-04-092-32/+50
| | | | | | | | | | | | | | | | | | | | the default exception/value when called instead of raising/returning NotimplementedError/NotImplemented (except where appropriate). This should allow for the ABCs to act as the bottom/end of the MRO with expected default results. As part of this work, also make importlib.abc.Loader.module_repr() optional instead of an abstractmethod.
* | mergeBrett Cannon2013-04-011-5/+8
|\ \ | |/
| * Issue #17357: Add missing verbosity messages when running underBrett Cannon2013-04-011-3/+6
| | | | | | | | -v/-vv that were lost in the transition to importlib.
* | Issue #17516: use comment syntax for comments, instead of multiline stringVictor Stinner2013-03-261-94/+93
| |
* | copy 2.7 magic numbers for historical interestBenjamin Peterson2013-03-221-0/+6
| |
* | Issue #17099: Have importlib.find_loader() raise ValueError whenBrett Cannon2013-03-131-0/+2
| | | | | | | | | | | | __loader__ is not set on a module. This brings the exception in line with when __loader__ is None (which is equivalent to not having the attribute defined).
* | Issue #17117: Have both import itself and importlib.util.set_loader()Brett Cannon2013-03-131-6/+3
| | | | | | | | | | | | set __loader__ on a module when set to None. Thanks to Gökcen Eraslan for the fix.
* | Issue #17220: two fixes for changeset 2528e4aea338.Brett Cannon2013-02-251-2/+2
| | | | | | | | | | | | | | | | | | First, because the mtime can exceed 4 bytes, make sure to mask it down to 4 bytes before getting its little-endian representation for writing out to a .pyc file. Two, cap an rsplit() call to 1 split, else can lead to too many values being returned for unpacking.
* | Issue #17220: Little cleanup of _bootstrap.py.Serhiy Storchaka2013-02-251-30/+14
| |
* | Merge from 3.3Eric Snow2013-02-171-2/+2
|\ \ | |/
| * Fixes a FileFinder docstring to reflect an old change.Eric Snow2013-02-171-2/+2
| | | | | | | | That change was in 1db6553f3f8c.
* | evaluate lambda keyword-only defaults after positional defaults (#16967 again)Benjamin Peterson2013-02-101-2/+2
| |
* | evaluate positional defaults before keyword-only defaults (closes #16967)Benjamin Peterson2013-02-101-1/+3
| |
* | Merge w/ 3.3 more fixes thanks to issue #17098Brett Cannon2013-02-011-2/+5
|\ \ | |/
| * Issue #17098: Be more stringent of setting __loader__ on early importedBrett Cannon2013-02-011-2/+5
| | | | | | | | modules. Also made test more rigorous.
* | Issue #17098: all modules should have __loader__Brett Cannon2013-02-011-3/+5
|\ \ | |/
| * Issue #17098: Make sure every module has __loader__ defined.Brett Cannon2013-02-011-3/+5
| | | | | | | | Thanks to Thomas Heller for the bug report.
* | Tweak an exception messageBrett Cannon2013-01-271-1/+1
| |
* | Port py_compile over to importlibBrett Cannon2013-01-261-7/+14
| |
* | Touch up exception messagingBrett Cannon2013-01-251-4/+4
| |
* | Issue #15031: Refactor some code in importlib pertaining to validatingBrett Cannon2013-01-111-66/+73
| | | | | | | | | | | | | | and compiling bytecode. Thanks to Ronan Lamy for pointing the redundancy and taking an initial stab at the refactor (as did Nick Coghlan).
* | Merge from 3.3 for fix for issue #16730Brett Cannon2013-01-111-2/+3
|\ \ | |/
| * Issue #16730: Don't raise an exception inBrett Cannon2013-01-111-2/+3
| | | | | | | | | | | | | | | | importlib.machinery.FileFinder when the directory has become unreadable or a file. This brings semantics in line with Python 3.2 import. Reported and diagnosed by David Pritchard.
* | Replace IOError with OSError (#16715)Andrew Svetlov2012-12-251-2/+2
| |
* | Issue #16719: Get rid of WindowsError. Use OSError insteadAndrew Svetlov2012-12-191-2/+2
| | | | | | | | Patch by Serhiy Storchaka.