cpython/Lib/test/test_importlib
Brett Cannon 0dbb4c7f13 Issues #18088, 18089: Introduce
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.
2013-05-31 18:56:47 -04:00
..
builtin
extension
frozen
import_
source Issues #18088, 18089: Introduce 2013-05-31 18:56:47 -04:00
__init__.py
__main__.py
abc.py
regrtest.py
test_abc.py Issues #18088, 18089: Introduce 2013-05-31 18:56:47 -04:00
test_api.py #17115,17116: Have modules initialize the __package__ and __loader__ 2013-05-04 13:56:58 -04:00
test_locks.py
test_util.py Issues #18088, 18089: Introduce 2013-05-31 18:56:47 -04:00
util.py