This fixes a regression compared to 2.x, where sys.modules.items()
returns a copy, as indicated by a comment in the source. Diagnosis and
patch by Erik Tollerud.
return sys.modules.get(modulesbyfile[file])
# Update the filename to module name cache and check yet again
# Copy sys.modules in order to cope with changes while iterating
- for modname, module in sys.modules.items():
+ for modname, module in list(sys.modules.items()):
if ismodule(module) and hasattr(module, '__file__'):
f = module.__file__
if f == _filesbymodname.get(modname, None):
Frank J. Tobin
R Lindsay Todd
Bennett Todd
+Erik Tollerud
Matias Torchinsky
Sandro Tosi
Richard Townsend
Library
-------
+- Issue #13487: Make inspect.getmodule robust against changes done to
+ sys.modules while it is iterating over it.
+
- Issue #12618: Fix a bug that prevented py_compile from creating byte
compiled files in the current directory. Initial patch by Sjoerd de Vries.