ACIL FM
Dark
Refresh
Current DIR:
/opt/imunify360/venv/lib/python3.11/site-packages/pip/_internal/utils
/
opt
imunify360
venv
lib
python3.11
site-packages
pip
_internal
utils
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
__pycache__
-
chmod
Open
Rename
Delete
appdirs.py
1.67 MB
chmod
View
DL
Edit
Rename
Delete
compat.py
2.34 MB
chmod
View
DL
Edit
Rename
Delete
compatibility_tags.py
6.51 MB
chmod
View
DL
Edit
Rename
Delete
datetime.py
241 B
chmod
View
DL
Edit
Rename
Delete
deprecation.py
3.62 MB
chmod
View
DL
Edit
Rename
Delete
direct_url_helpers.py
3.12 MB
chmod
View
DL
Edit
Rename
Delete
egg_link.py
2.41 MB
chmod
View
DL
Edit
Rename
Delete
entrypoints.py
3.25 MB
chmod
View
DL
Edit
Rename
Delete
filesystem.py
4.83 MB
chmod
View
DL
Edit
Rename
Delete
filetypes.py
715 B
chmod
View
DL
Edit
Rename
Delete
glibc.py
3.65 MB
chmod
View
DL
Edit
Rename
Delete
hashes.py
4.86 MB
chmod
View
DL
Edit
Rename
Delete
logging.py
11.79 MB
chmod
View
DL
Edit
Rename
Delete
misc.py
22.9 MB
chmod
View
DL
Edit
Rename
Delete
packaging.py
1.57 MB
chmod
View
DL
Edit
Rename
Delete
retry.py
1.36 MB
chmod
View
DL
Edit
Rename
Delete
setuptools_build.py
4.38 MB
chmod
View
DL
Edit
Rename
Delete
subprocess.py
8.78 MB
chmod
View
DL
Edit
Rename
Delete
temp_dir.py
9.09 MB
chmod
View
DL
Edit
Rename
Delete
unpacking.py
11.65 MB
chmod
View
DL
Edit
Rename
Delete
urls.py
1.56 MB
chmod
View
DL
Edit
Rename
Delete
virtualenv.py
3.38 MB
chmod
View
DL
Edit
Rename
Delete
wheel.py
4.39 MB
chmod
View
DL
Edit
Rename
Delete
_jaraco_text.py
3.27 MB
chmod
View
DL
Edit
Rename
Delete
_log.py
1015 B
chmod
View
DL
Edit
Rename
Delete
__init__.py
0 B
chmod
View
DL
Edit
Rename
Delete
Edit file: /opt/imunify360/venv/lib/python3.11/site-packages/pip/_internal/utils/glibc.py
import os import sys from typing import Optional, Tuple def glibc_version_string() -> 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() -> 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: gnu_libc_version = os.confstr("CS_GNU_LIBC_VERSION") if gnu_libc_version is None: return None # os.confstr("CS_GNU_LIBC_VERSION") returns a string like "glibc 2.17": _, version = 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() -> 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. # # We must also handle the special case where the executable is not a # dynamically linked executable. This can occur when using musl libc, # for example. In this situation, dlopen() will error, leading to an # OSError. Interestingly, at least in the case of musl, there is no # errno set on the OSError. The single string argument used to construct # OSError comes from libc itself and is therefore not portable to # hard code here. In any case, failure to call dlopen() means we # can't proceed, so we bail on our attempt. try: process_namespace = ctypes.CDLL(None) except OSError: return 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: 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() -> 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)
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply