404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.129.73.64: ~ $
# This file originally from pip:
# https://github.com/pypa/pip/blob/8f4f15a5a95d7d5b511ceaee9ed261176c181970/src/pip/_internal/utils/glibc.py
from __future__ import absolute_import

import ctypes
import re
import warnings


def glibc_version_string():
    "Returns glibc version string, or None if not using glibc."

    # 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


# Separated out from have_compatible_glibc for easier unit testing
def check_glibc_version(version_str, required_major, minimum_minor):
    # Parse string and check against requested version.
    #
    # We use a regexp instead of str.split because we want to discard any
    # random junk that might come after the minor version -- this might happen
    # in patched/forked versions of glibc (e.g. Linaro's version of glibc
    # uses version strings like "2.20-2014.11"). See gh-3588.
    m = re.match(r"(?P<major>[0-9]+)\.(?P<minor>[0-9]+)", version_str)
    if not m:
        warnings.warn("Expected glibc version with 2 components major.minor,"
                      " got: %s" % version_str, RuntimeWarning)
        return False
    return (int(m.group("major")) == required_major and
            int(m.group("minor")) >= minimum_minor)


def have_compatible_glibc(required_major, minimum_minor):
    version_str = glibc_version_string()
    if version_str is None:
        return False
    return check_glibc_version(version_str, required_major, minimum_minor)


# 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():
    """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)

Filemanager

Name Type Size Permission Actions
_vendor Folder 0755
command Folder 0755
extern Folder 0755
__init__.py File 5.57 KB 0644
__init__.pyc File 7.45 KB 0644
__init__.pyo File 7.45 KB 0644
archive_util.py File 6.44 KB 0644
archive_util.pyc File 6 KB 0644
archive_util.pyo File 6 KB 0644
build_meta.py File 5.54 KB 0644
build_meta.pyc File 6.48 KB 0644
build_meta.pyo File 6.37 KB 0644
config.py File 16 KB 0644
config.pyc File 16.49 KB 0644
config.pyo File 16.49 KB 0644
dep_util.py File 935 B 0644
dep_util.pyc File 965 B 0644
dep_util.pyo File 965 B 0644
depends.py File 5.7 KB 0644
depends.pyc File 6.33 KB 0644
depends.pyo File 6.33 KB 0644
dist.py File 41.52 KB 0644
dist.pyc File 40.53 KB 0644
dist.pyo File 40.47 KB 0644
extension.py File 1.69 KB 0644
extension.pyc File 2.36 KB 0644
extension.pyo File 2.36 KB 0644
glibc.py File 3.07 KB 0644
glibc.pyc File 1.91 KB 0644
glibc.pyo File 1.91 KB 0644
glob.py File 5.08 KB 0644
glob.pyc File 4.71 KB 0644
glob.pyo File 4.64 KB 0644
launch.py File 787 B 0644
launch.pyc File 1000 B 0644
launch.pyo File 1000 B 0644
lib2to3_ex.py File 1.97 KB 0644
lib2to3_ex.pyc File 2.93 KB 0644
lib2to3_ex.pyo File 2.93 KB 0644
monkey.py File 5.65 KB 0644
monkey.pyc File 6.19 KB 0644
monkey.pyo File 6.19 KB 0644
msvc.py File 39.92 KB 0644
msvc.pyc File 39.41 KB 0644
msvc.pyo File 39.41 KB 0644
namespaces.py File 3.12 KB 0644
namespaces.pyc File 4.92 KB 0644
namespaces.pyo File 4.92 KB 0644
package_index.py File 39.21 KB 0644
package_index.pyc File 38.81 KB 0644
package_index.pyo File 38.81 KB 0644
pep425tags.py File 10.63 KB 0644
pep425tags.pyc File 9.12 KB 0644
pep425tags.pyo File 9.12 KB 0644
py27compat.py File 536 B 0644
py27compat.pyc File 1.02 KB 0644
py27compat.pyo File 1.02 KB 0644
py31compat.py File 1.16 KB 0644
py31compat.pyc File 1.85 KB 0644
py31compat.pyo File 1.85 KB 0644
py33compat.py File 1.15 KB 0644
py33compat.pyc File 1.68 KB 0644
py33compat.pyo File 1.68 KB 0644
py36compat.py File 2.82 KB 0644
py36compat.pyc File 2.79 KB 0644
py36compat.pyo File 2.79 KB 0644
sandbox.py File 13.94 KB 0644
sandbox.pyc File 18.46 KB 0644
sandbox.pyo File 18.46 KB 0644
script (dev).tmpl File 201 B 0644
script.tmpl File 138 B 0644
site-patch.py File 2.25 KB 0644
site-patch.pyc File 1.7 KB 0644
site-patch.pyo File 1.7 KB 0644
ssl_support.py File 8.29 KB 0644
ssl_support.pyc File 8.32 KB 0644
ssl_support.pyo File 8.32 KB 0644
unicode_utils.py File 996 B 0644
unicode_utils.pyc File 1.44 KB 0644
unicode_utils.pyo File 1.44 KB 0644
version.py File 144 B 0644
version.pyc File 322 B 0644
version.pyo File 322 B 0644
wheel.py File 7.06 KB 0644
wheel.pyc File 7.17 KB 0644
wheel.pyo File 7.14 KB 0644
windows_support.py File 714 B 0644
windows_support.pyc File 1.24 KB 0644
windows_support.pyo File 1.24 KB 0644