• Brett Cannon's avatar
    Issue #18810: Be optimistic with stat calls when seeing if a directory · 58f56804
    Brett Cannon authored
    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
_bootstrap.py 63.1 KB