diff options
author | Brett Cannon <brett@python.org> | 2013-04-28 15:58:31 (GMT) |
---|---|---|
committer | Brett Cannon <brett@python.org> | 2013-04-28 15:58:31 (GMT) |
commit | e1d30f24ee2594ead4d4b28a65d706bd8e03ca2d (patch) | |
tree | e168fa0169549fc26418fb2feb710dc22c534749 | |
parent | d4c1b36c39b792f1b001979ebf2858444a4df095 (diff) | |
parent | 5a4c233a9e6450919ddea78d7df22a76b4758322 (diff) | |
download | cpython-e1d30f24ee2594ead4d4b28a65d706bd8e03ca2d.zip cpython-e1d30f24ee2594ead4d4b28a65d706bd8e03ca2d.tar.gz cpython-e1d30f24ee2594ead4d4b28a65d706bd8e03ca2d.tar.bz2 |
merge for issue #17358
-rw-r--r-- | Lib/imp.py | 14 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
2 files changed, 15 insertions, 2 deletions
@@ -111,7 +111,12 @@ def load_source(name, pathname, file=None): 'importlib.machinery.SourceFileLoader(name, pathname).load_module()' ' instead') warnings.warn(msg, DeprecationWarning, 2) - return _LoadSourceCompatibility(name, pathname, file).load_module(name) + _LoadSourceCompatibility(name, pathname, file).load_module(name) + module = sys.modules[name] + # To allow reloading to potentially work, use a non-hacked loader which + # won't rely on a now-closed file object. + module.__loader__ = _bootstrap.SourceFileLoader(name, pathname) + return module class _LoadCompiledCompatibility(_HackedGetData, @@ -125,7 +130,12 @@ def load_compiled(name, pathname, file=None): 'importlib.machinery.SourcelessFileLoader(name, pathname).' 'load_module() instead ') warnings.warn(msg, DeprecationWarning, 2) - return _LoadCompiledCompatibility(name, pathname, file).load_module(name) + _LoadCompiledCompatibility(name, pathname, file).load_module(name) + module = sys.modules[name] + # To allow reloading to potentially work, use a non-hacked loader which + # won't rely on a now-closed file object. + module.__loader__ = _bootstrap.SourcelessFileLoader(name, pathname) + return module def load_package(name, path): @@ -52,6 +52,9 @@ Core and Builtins Library ------- +- Issue #17358: Modules loaded by imp.load_source() and load_compiled() (and by + extention load_module()) now have a better chance of working when reloaded. + - Issue #17804: New function ``struct.iter_unpack`` allows for streaming struct unpacking. |