• Brett Cannon's avatar
    Make importlib compatible with __import__ by "fixing" code.co_filename · 442c9b92
    Brett Cannon yazdı
    paths.
    
    __import__ does a little trick when importing from bytecode by
    back-patching the co_filename paths to point to the file location
    where the code object was loaded from, *not* where the code object was
    originally created. This allows co_filename to point to a valid path.
    Problem is that co_filename is immutable from Python, so a private
    function -- imp._fix_co_filename() -- had to be introduced in order to
    get things working properly. Originally the plan was to add a file
    argument to marshal.loads(), but that failed as the algorithm used by
    __import__ is not fully recursive as one might expect, so to be fully
    backwards-compatible the code used by __import__ needed to be exposed.
    
    This closes issue #6811 by taking a different approach than outlined
    in the issue.
    442c9b92
Adı
Son kayıt (commit)
Son güncelleme
..
Python-ast.c Loading commit data...
_warnings.c Loading commit data...
asdl.c Loading commit data...
ast.c Loading commit data...
bltinmodule.c Loading commit data...
ceval.c Loading commit data...
ceval_gil.h Loading commit data...
codecs.c Loading commit data...
compile.c Loading commit data...
dtoa.c Loading commit data...
dup2.c Loading commit data...
dynamic_annotations.c Loading commit data...
dynload_aix.c Loading commit data...
dynload_dl.c Loading commit data...
dynload_hpux.c Loading commit data...
dynload_next.c Loading commit data...
dynload_os2.c Loading commit data...
dynload_shlib.c Loading commit data...
dynload_stub.c Loading commit data...
dynload_win.c Loading commit data...
errors.c Loading commit data...
fileutils.c Loading commit data...
formatter_unicode.c Loading commit data...
frozen.c Loading commit data...
frozenmain.c Loading commit data...
future.c Loading commit data...
getargs.c Loading commit data...
getcompiler.c Loading commit data...
getcopyright.c Loading commit data...
getcwd.c Loading commit data...
getopt.c Loading commit data...
getplatform.c Loading commit data...
getversion.c Loading commit data...
graminit.c Loading commit data...
import.c Loading commit data...
importdl.c Loading commit data...
importdl.h Loading commit data...
makeopcodetargets.py Loading commit data...
marshal.c Loading commit data...
modsupport.c Loading commit data...
mysnprintf.c Loading commit data...
mystrtoul.c Loading commit data...
opcode_targets.h Loading commit data...
peephole.c Loading commit data...
pyarena.c Loading commit data...
pyctype.c Loading commit data...
pyfpe.c Loading commit data...
pymath.c Loading commit data...
pystate.c Loading commit data...
pystrcmp.c Loading commit data...
pystrtod.c Loading commit data...
pythonrun.c Loading commit data...
pytime.c Loading commit data...
sigcheck.c Loading commit data...
strdup.c Loading commit data...
structmember.c Loading commit data...
symtable.c Loading commit data...
sysmodule.c Loading commit data...
thread.c Loading commit data...
thread_cthread.h Loading commit data...
thread_foobar.h Loading commit data...
thread_lwp.h Loading commit data...
thread_nt.h Loading commit data...
thread_os2.h Loading commit data...
thread_pth.h Loading commit data...
thread_pthread.h Loading commit data...
thread_sgi.h Loading commit data...
thread_solaris.h Loading commit data...
thread_wince.h Loading commit data...
traceback.c Loading commit data...