mirror of
https://github.com/python/cpython.git
synced 2025-07-31 23:23:11 +00:00
Fix several issues relating to access to source code inside zipfiles. Initial work by Alexander Belopolsky. See Misc/NEWS in this checkin for details.
This commit is contained in:
parent
3e16f3dd7f
commit
a2053475bb
10 changed files with 161 additions and 48 deletions
13
Lib/runpy.py
13
Lib/runpy.py
|
@ -65,13 +65,14 @@ def _run_module_code(code, init_globals=None,
|
|||
|
||||
# This helper is needed due to a missing component in the PEP 302
|
||||
# loader protocol (specifically, "get_filename" is non-standard)
|
||||
# Since we can't introduce new features in maintenance releases,
|
||||
# support was added to zipimporter under the name '_get_filename'
|
||||
def _get_filename(loader, mod_name):
|
||||
try:
|
||||
get_filename = loader.get_filename
|
||||
except AttributeError:
|
||||
return None
|
||||
else:
|
||||
return get_filename(mod_name)
|
||||
for attr in ("get_filename", "_get_filename"):
|
||||
meth = getattr(loader, attr, None)
|
||||
if meth is not None:
|
||||
return meth(mod_name)
|
||||
return None
|
||||
|
||||
# Helper to get the loader, code and filename for a module
|
||||
def _get_module_details(mod_name):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue