Relocate importlib._case_ok to importlib._bootstrap.
This required updating the code to use posix instead of os. This is all being done to make bootstrapping easier to removing dependencies that are kept in importlib.__init__ and thus outside of the single file to bootstrap from.
This commit is contained in:
parent
e9cd900585
commit
51d14f8e56
|
@ -33,25 +33,6 @@ _r_long = _bootstrap._r_long
|
|||
|
||||
# Bootstrap help #####################################################
|
||||
|
||||
# TODO: Expose from import.c, else handle encode/decode as _os.environ returns
|
||||
# bytes.
|
||||
def _case_ok(directory, check):
|
||||
"""Check if the directory contains something matching 'check'.
|
||||
|
||||
No check is done if the file/directory exists or not.
|
||||
|
||||
"""
|
||||
if 'PYTHONCASEOK' in os.environ:
|
||||
return True
|
||||
if not directory:
|
||||
directory = os.getcwd()
|
||||
if check in os.listdir(directory):
|
||||
return True
|
||||
return False
|
||||
|
||||
_bootstrap._case_ok = _case_ok
|
||||
|
||||
|
||||
# Required built-in modules.
|
||||
try:
|
||||
import posix as _os
|
||||
|
|
|
@ -18,6 +18,33 @@ work. One should use importlib as the public-facing version of this module.
|
|||
|
||||
# Bootstrap-related code ######################################################
|
||||
|
||||
# TODO: when not on any of these platforms, replace _case_ok() w/
|
||||
# ``lambda x,y: True``.
|
||||
CASE_OK_PLATFORMS = 'win', 'cygwin', 'darwin'
|
||||
|
||||
def _case_ok(directory, check):
|
||||
"""Check if the directory contains something matching 'check'
|
||||
case-sensitively when running on Windows or OS X.
|
||||
|
||||
If running on Window or OS X and PYTHONCASEOK is a defined environment
|
||||
variable then no case-sensitive check is performed. No check is done to see
|
||||
if what is being checked for exists, so if the platform is not Windows or
|
||||
OS X then assume the case is fine.
|
||||
|
||||
"""
|
||||
if (any(map(sys.platform.startswith, CASE_OK_PLATFORMS)) and
|
||||
b'PYTHONCASEOK' not in _os.environ):
|
||||
if not directory:
|
||||
directory = '.'
|
||||
if check in _os.listdir(directory):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
|
||||
|
||||
# TODO: Expose from marshal
|
||||
def _w_long(x):
|
||||
"""Convert a 32-bit integer to little-endian.
|
||||
|
|
Loading…
Reference in New Issue