golden hour
/opt/alt/python37/lib/python3.7/site-packages/pip/_internal/utils
⬆️ Go Up
Upload
File/Folder
Size
Actions
__init__.py
0 B
Del
OK
__init__.pyc
164 B
Del
OK
__init__.pyo
164 B
Del
OK
__pycache__
-
Del
OK
appdirs.py
1.32 KB
Del
OK
appdirs.pyc
1.78 KB
Del
OK
appdirs.pyo
1.78 KB
Del
OK
compat.py
9.27 KB
Del
OK
compat.pyc
8.62 KB
Del
OK
compat.pyo
8.62 KB
Del
OK
compatibility_tags.py
5.31 KB
Del
OK
compatibility_tags.pyc
4.45 KB
Del
OK
compatibility_tags.pyo
4.45 KB
Del
OK
datetime.py
295 B
Del
OK
datetime.pyc
625 B
Del
OK
datetime.pyo
625 B
Del
OK
deprecation.py
3.24 KB
Del
OK
deprecation.pyc
3.44 KB
Del
OK
deprecation.pyo
3.44 KB
Del
OK
direct_url_helpers.py
4.26 KB
Del
OK
direct_url_helpers.pyc
3.37 KB
Del
OK
direct_url_helpers.pyo
3.24 KB
Del
OK
distutils_args.py
1.32 KB
Del
OK
distutils_args.pyc
1.6 KB
Del
OK
distutils_args.pyo
1.6 KB
Del
OK
encoding.py
1.25 KB
Del
OK
encoding.pyc
1.61 KB
Del
OK
encoding.pyo
1.56 KB
Del
OK
entrypoints.py
1.19 KB
Del
OK
entrypoints.pyc
1.47 KB
Del
OK
entrypoints.pyo
1.47 KB
Del
OK
filesystem.py
6.78 KB
Del
OK
filesystem.pyc
7.4 KB
Del
OK
filesystem.pyo
7.35 KB
Del
OK
filetypes.py
571 B
Del
OK
filetypes.pyc
792 B
Del
OK
filetypes.pyo
792 B
Del
OK
glibc.py
3.22 KB
Del
OK
glibc.pyc
2.19 KB
Del
OK
glibc.pyo
2.19 KB
Del
OK
hashes.py
4.57 KB
Del
OK
hashes.pyc
5.68 KB
Del
OK
hashes.pyo
5.68 KB
Del
OK
inject_securetransport.py
810 B
Del
OK
inject_securetransport.pyc
1.07 KB
Del
OK
inject_securetransport.pyo
1.07 KB
Del
OK
logging.py
12.79 KB
Del
OK
logging.pyc
11.6 KB
Del
OK
logging.pyo
11.6 KB
Del
OK
misc.py
27.67 KB
Del
OK
misc.pyc
32.2 KB
Del
OK
misc.pyo
32.2 KB
Del
OK
models.py
1.17 KB
Del
OK
models.pyc
2.55 KB
Del
OK
models.pyo
2.55 KB
Del
OK
packaging.py
2.96 KB
Del
OK
packaging.pyc
3.27 KB
Del
OK
packaging.pyo
3.27 KB
Del
OK
parallel.py
3.32 KB
Del
OK
parallel.pyc
3.62 KB
Del
OK
parallel.pyo
3.62 KB
Del
OK
pkg_resources.py
1.22 KB
Del
OK
pkg_resources.pyc
2.39 KB
Del
OK
pkg_resources.pyo
2.39 KB
Del
OK
setuptools_build.py
4.94 KB
Del
OK
setuptools_build.pyc
3.83 KB
Del
OK
setuptools_build.pyo
3.75 KB
Del
OK
subprocess.py
9.69 KB
Del
OK
subprocess.pyc
6.77 KB
Del
OK
subprocess.pyo
6.69 KB
Del
OK
temp_dir.py
8.18 KB
Del
OK
temp_dir.pyc
8.75 KB
Del
OK
temp_dir.pyo
8.62 KB
Del
OK
typing.py
1.37 KB
Del
OK
typing.pyc
1.52 KB
Del
OK
typing.pyo
1.52 KB
Del
OK
unpacking.py
9.27 KB
Del
OK
unpacking.pyc
7.83 KB
Del
OK
unpacking.pyo
7.79 KB
Del
OK
urls.py
1.49 KB
Del
OK
urls.pyc
1.94 KB
Del
OK
urls.pyo
1.8 KB
Del
OK
virtualenv.py
3.62 KB
Del
OK
virtualenv.pyc
4.11 KB
Del
OK
virtualenv.pyo
4.11 KB
Del
OK
wheel.py
7.13 KB
Del
OK
wheel.pyc
7.27 KB
Del
OK
wheel.pyo
7.27 KB
Del
OK
Edit: glibc.py
# The following comment should be removed at some point in the future. # mypy: strict-optional=False from __future__ import absolute_import import os import sys from pip._internal.utils.typing import MYPY_CHECK_RUNNING if MYPY_CHECK_RUNNING: from typing import Optional, Tuple def glibc_version_string(): # type: () -> Optional[str] "Returns glibc version string, or None if not using glibc." return glibc_version_string_confstr() or glibc_version_string_ctypes() def glibc_version_string_confstr(): # type: () -> Optional[str] "Primary implementation of glibc_version_string using os.confstr." # os.confstr is quite a bit faster than ctypes.DLL. It's also less likely # to be broken or missing. This strategy is used in the standard library # platform module: # https://github.com/python/cpython/blob/fcf1d003bf4f0100c9d0921ff3d70e1127ca1b71/Lib/platform.py#L175-L183 if sys.platform == "win32": return None try: # os.confstr("CS_GNU_LIBC_VERSION") returns a string like "glibc 2.17": _, version = os.confstr("CS_GNU_LIBC_VERSION").split() except (AttributeError, OSError, ValueError): # os.confstr() or CS_GNU_LIBC_VERSION not available (or a bad value)... return None return version def glibc_version_string_ctypes(): # type: () -> Optional[str] "Fallback implementation of glibc_version_string using ctypes." try: import ctypes except ImportError: return None # ctypes.CDLL(None) internally calls dlopen(NULL), and as the dlopen # manpage says, "If filename is NULL, then the returned handle is for the # main program". This way we can let the linker do the work to figure out # which libc our process is actually using. process_namespace = ctypes.CDLL(None) try: gnu_get_libc_version = process_namespace.gnu_get_libc_version except AttributeError: # Symbol doesn't exist -> therefore, we are not linked to # glibc. return None # Call gnu_get_libc_version, which returns a string like "2.5" gnu_get_libc_version.restype = ctypes.c_char_p version_str = gnu_get_libc_version() # py2 / py3 compatibility: if not isinstance(version_str, str): version_str = version_str.decode("ascii") return version_str # platform.libc_ver regularly returns completely nonsensical glibc # versions. E.g. on my computer, platform says: # # ~$ python2.7 -c 'import platform; print(platform.libc_ver())' # ('glibc', '2.7') # ~$ python3.5 -c 'import platform; print(platform.libc_ver())' # ('glibc', '2.9') # # But the truth is: # # ~$ ldd --version # ldd (Debian GLIBC 2.22-11) 2.22 # # This is unfortunate, because it means that the linehaul data on libc # versions that was generated by pip 8.1.2 and earlier is useless and # misleading. Solution: instead of using platform, use our code that actually # works. def libc_ver(): # type: () -> Tuple[str, str] """Try to determine the glibc version Returns a tuple of strings (lib, version) which default to empty strings in case the lookup fails. """ glibc_version = glibc_version_string() if glibc_version is None: return ("", "") else: return ("glibc", glibc_version)
Save