• Brett Cannon's avatar
    Issue #18810: Be optimistic with stat calls when seeing if a directory · 58f56804
    Brett Cannon yazdı
    exists when checking for a package.
    
    Before there was an isdir check and then various isfile checks for
    possible __init__ files when looking for a package.
    This change drops the isdir check by leaning
    on the assumption that a directory will not contain something named
    after the module being imported which is not a directory. If the module
    is a package then it saves a stat call. If there is nothing in the
    directory with the potential package name it also saves a stat call.
    Only if there is something in the directory named the same thing as
    the potential package will the number of stat calls increase
    (due to more wasteful __init__ checks).
    
    Semantically there is no change as the isdir check moved
    down so that namespace packages continue to have no chance of
    accidentally collecting non-existent directories.
    58f56804
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...
condvar.h 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_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...
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...
importlib.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...
random.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_foobar.h Loading commit data...
thread_nt.h Loading commit data...
thread_pthread.h Loading commit data...
traceback.c Loading commit data...