SILENT KILLERPanel

Current Path: > > usr > lib > python2.7 > site-packages > setuptools


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //usr/lib/python2.7/site-packages/setuptools

NameTypeSizeLast ModifiedActions
_vendor Directory - -
command Directory - -
extern Directory - -
__init__.py File 5700 bytes April 10 2024 05:04:00.
__init__.pyc File 7625 bytes April 10 2024 05:04:00.
__init__.pyo File 7625 bytes April 10 2024 05:04:00.
archive_util.py File 6592 bytes April 10 2024 05:04:00.
archive_util.pyc File 6142 bytes April 10 2024 05:04:00.
archive_util.pyo File 6142 bytes April 10 2024 05:04:00.
build_meta.py File 5671 bytes April 10 2024 05:04:00.
build_meta.pyc File 6639 bytes April 10 2024 05:04:00.
build_meta.pyo File 6522 bytes April 10 2024 05:04:00.
config.py File 16381 bytes April 10 2024 05:04:00.
config.pyc File 16888 bytes April 10 2024 05:04:00.
config.pyo File 16888 bytes April 10 2024 05:04:00.
dep_util.py File 935 bytes April 10 2024 05:04:00.
dep_util.pyc File 965 bytes April 10 2024 05:04:00.
dep_util.pyo File 965 bytes April 10 2024 05:04:00.
depends.py File 5837 bytes April 10 2024 05:04:00.
depends.pyc File 6483 bytes April 10 2024 05:04:00.
depends.pyo File 6483 bytes April 10 2024 05:04:00.
dist.py File 42514 bytes April 10 2024 05:04:00.
dist.pyc File 41502 bytes April 10 2024 05:04:00.
dist.pyo File 41444 bytes April 10 2024 05:04:00.
extension.py File 1729 bytes April 10 2024 05:04:00.
extension.pyc File 2418 bytes April 10 2024 05:04:00.
extension.pyo File 2418 bytes April 10 2024 05:04:00.
glibc.py File 3146 bytes April 10 2024 05:04:00.
glibc.pyc File 1960 bytes April 10 2024 05:04:00.
glibc.pyo File 1960 bytes April 10 2024 05:04:00.
glob.py File 5207 bytes April 10 2024 05:04:00.
glob.pyc File 4818 bytes April 10 2024 05:04:00.
glob.pyo File 4756 bytes April 10 2024 05:04:00.
launch.py File 787 bytes April 10 2024 05:04:00.
launch.pyc File 1000 bytes April 10 2024 05:04:00.
launch.pyo File 1000 bytes April 10 2024 05:04:00.
lib2to3_ex.py File 2013 bytes April 10 2024 05:04:00.
lib2to3_ex.pyc File 3004 bytes April 10 2024 05:04:00.
lib2to3_ex.pyo File 3004 bytes April 10 2024 05:04:00.
monkey.py File 5789 bytes April 10 2024 05:04:00.
monkey.pyc File 6343 bytes April 10 2024 05:04:00.
monkey.pyo File 6343 bytes April 10 2024 05:04:00.
msvc.py File 40877 bytes April 10 2024 05:04:00.
msvc.pyc File 40352 bytes April 10 2024 05:04:00.
msvc.pyo File 40352 bytes April 10 2024 05:04:00.
namespaces.py File 3199 bytes April 10 2024 05:04:00.
namespaces.pyc File 5033 bytes April 10 2024 05:04:00.
namespaces.pyo File 5033 bytes April 10 2024 05:04:00.
package_index.py File 40153 bytes April 10 2024 05:04:00.
package_index.pyc File 39743 bytes April 10 2024 05:04:00.
package_index.pyo File 39743 bytes April 10 2024 05:04:00.
pep425tags.py File 10882 bytes April 10 2024 05:04:00.
pep425tags.pyc File 9334 bytes April 10 2024 05:04:00.
pep425tags.pyo File 9334 bytes April 10 2024 05:04:00.
py27compat.py File 536 bytes April 10 2024 05:04:00.
py27compat.pyc File 1045 bytes April 10 2024 05:04:00.
py27compat.pyo File 1045 bytes April 10 2024 05:04:00.
py31compat.py File 1192 bytes April 10 2024 05:04:00.
py31compat.pyc File 1898 bytes April 10 2024 05:04:00.
py31compat.pyo File 1898 bytes April 10 2024 05:04:00.
py33compat.py File 1182 bytes April 10 2024 05:04:00.
py33compat.pyc File 1720 bytes April 10 2024 05:04:00.
py33compat.pyo File 1720 bytes April 10 2024 05:04:00.
py36compat.py File 2891 bytes April 10 2024 05:04:00.
py36compat.pyc File 2862 bytes April 10 2024 05:04:00.
py36compat.pyo File 2862 bytes April 10 2024 05:04:00.
sandbox.py File 14276 bytes April 10 2024 05:04:00.
sandbox.pyc File 18900 bytes April 10 2024 05:04:00.
sandbox.pyo File 18900 bytes April 10 2024 05:04:00.
script (dev).tmpl File 201 bytes April 10 2024 05:04:00.
script.tmpl File 138 bytes April 10 2024 05:04:00.
site-patch.py File 2307 bytes April 10 2024 05:04:00.
site-patch.pyc File 1739 bytes April 10 2024 05:04:00.
site-patch.pyo File 1739 bytes April 10 2024 05:04:00.
ssl_support.py File 8492 bytes April 10 2024 05:04:00.
ssl_support.pyc File 8516 bytes April 10 2024 05:04:00.
ssl_support.pyo File 8516 bytes April 10 2024 05:04:00.
unicode_utils.py File 996 bytes April 10 2024 05:04:00.
unicode_utils.pyc File 1472 bytes April 10 2024 05:04:00.
unicode_utils.pyo File 1472 bytes April 10 2024 05:04:00.
version.py File 144 bytes April 10 2024 05:04:00.
version.pyc File 322 bytes April 10 2024 05:04:00.
version.pyo File 322 bytes April 10 2024 05:04:00.
wheel.py File 7230 bytes April 10 2024 05:04:00.
wheel.pyc File 7343 bytes April 10 2024 05:04:00.
wheel.pyo File 7309 bytes April 10 2024 05:04:00.
windows_support.py File 714 bytes April 10 2024 05:04:00.
windows_support.pyc File 1274 bytes April 10 2024 05:04:00.
windows_support.pyo File 1274 bytes April 10 2024 05:04:00.

Reading File: //usr/lib/python2.7/site-packages/setuptools/wheel.py

'''Wheels support.'''

from distutils.util import get_platform
import email
import itertools
import os
import re
import zipfile

from pkg_resources import Distribution, PathMetadata, parse_version
from setuptools.extern.six import PY3
from setuptools import Distribution as SetuptoolsDistribution
from setuptools import pep425tags
from setuptools.command.egg_info import write_requirements


WHEEL_NAME = re.compile(
    r"""^(?P<project_name>.+?)-(?P<version>\d.*?)
    ((-(?P<build>\d.*?))?-(?P<py_version>.+?)-(?P<abi>.+?)-(?P<platform>.+?)
    )\.whl$""",
re.VERBOSE).match

NAMESPACE_PACKAGE_INIT = '''\
try:
    __import__('pkg_resources').declare_namespace(__name__)
except ImportError:
    __path__ = __import__('pkgutil').extend_path(__path__, __name__)
'''


def unpack(src_dir, dst_dir):
    '''Move everything under `src_dir` to `dst_dir`, and delete the former.'''
    for dirpath, dirnames, filenames in os.walk(src_dir):
        subdir = os.path.relpath(dirpath, src_dir)
        for f in filenames:
            src = os.path.join(dirpath, f)
            dst = os.path.join(dst_dir, subdir, f)
            os.renames(src, dst)
        for n, d in reversed(list(enumerate(dirnames))):
            src = os.path.join(dirpath, d)
            dst = os.path.join(dst_dir, subdir, d)
            if not os.path.exists(dst):
                # Directory does not exist in destination,
                # rename it and prune it from os.walk list.
                os.renames(src, dst)
                del dirnames[n]
    # Cleanup.
    for dirpath, dirnames, filenames in os.walk(src_dir, topdown=True):
        assert not filenames
        os.rmdir(dirpath)


class Wheel(object):

    def __init__(self, filename):
        match = WHEEL_NAME(os.path.basename(filename))
        if match is None:
            raise ValueError('invalid wheel name: %r' % filename)
        self.filename = filename
        for k, v in match.groupdict().items():
            setattr(self, k, v)

    def tags(self):
        '''List tags (py_version, abi, platform) supported by this wheel.'''
        return itertools.product(self.py_version.split('.'),
                                 self.abi.split('.'),
                                 self.platform.split('.'))

    def is_compatible(self):
        '''Is the wheel is compatible with the current platform?'''
        supported_tags = pep425tags.get_supported()
        return next((True for t in self.tags() if t in supported_tags), False)

    def egg_name(self):
        return Distribution(
            project_name=self.project_name, version=self.version,
            platform=(None if self.platform == 'any' else get_platform()),
        ).egg_name() + '.egg'

    def install_as_egg(self, destination_eggdir):
        '''Install wheel as an egg directory.'''
        with zipfile.ZipFile(self.filename) as zf:
            dist_basename = '%s-%s' % (self.project_name, self.version)
            dist_info = '%s.dist-info' % dist_basename
            dist_data = '%s.data' % dist_basename
            def get_metadata(name):
                with zf.open('%s/%s' % (dist_info, name)) as fp:
                    value = fp.read().decode('utf-8') if PY3 else fp.read()
                    return email.parser.Parser().parsestr(value)
            wheel_metadata = get_metadata('WHEEL')
            dist_metadata = get_metadata('METADATA')
            # Check wheel format version is supported.
            wheel_version = parse_version(wheel_metadata.get('Wheel-Version'))
            if not parse_version('1.0') <= wheel_version < parse_version('2.0dev0'):
                raise ValueError('unsupported wheel format version: %s' % wheel_version)
            # Extract to target directory.
            os.mkdir(destination_eggdir)
            zf.extractall(destination_eggdir)
            # Convert metadata.
            dist_info = os.path.join(destination_eggdir, dist_info)
            dist = Distribution.from_location(
                destination_eggdir, dist_info,
                metadata=PathMetadata(destination_eggdir, dist_info)
            )
            # Note: we need to evaluate and strip markers now,
            # as we can't easily convert back from the syntax:
            # foobar; "linux" in sys_platform and extra == 'test'
            def raw_req(req):
                req.marker = None
                return str(req)
            install_requires = list(sorted(map(raw_req, dist.requires())))
            extras_require = {
                extra: list(sorted(
                    req
                    for req in map(raw_req, dist.requires((extra,)))
                    if req not in install_requires
                ))
                for extra in dist.extras
            }
            egg_info = os.path.join(destination_eggdir, 'EGG-INFO')
            os.rename(dist_info, egg_info)
            os.rename(os.path.join(egg_info, 'METADATA'),
                      os.path.join(egg_info, 'PKG-INFO'))
            setup_dist = SetuptoolsDistribution(attrs=dict(
                install_requires=install_requires,
                extras_require=extras_require,
            ))
            write_requirements(setup_dist.get_command_obj('egg_info'),
                               None, os.path.join(egg_info, 'requires.txt'))
            # Move data entries to their correct location.
            dist_data = os.path.join(destination_eggdir, dist_data)
            dist_data_scripts = os.path.join(dist_data, 'scripts')
            if os.path.exists(dist_data_scripts):
                egg_info_scripts = os.path.join(destination_eggdir,
                                                'EGG-INFO', 'scripts')
                os.mkdir(egg_info_scripts)
                for entry in os.listdir(dist_data_scripts):
                    # Remove bytecode, as it's not properly handled
                    # during easy_install scripts install phase.
                    if entry.endswith('.pyc'):
                        os.unlink(os.path.join(dist_data_scripts, entry))
                    else:
                        os.rename(os.path.join(dist_data_scripts, entry),
                                  os.path.join(egg_info_scripts, entry))
                os.rmdir(dist_data_scripts)
            for subdir in filter(os.path.exists, (
                os.path.join(dist_data, d)
                for d in ('data', 'headers', 'purelib', 'platlib')
            )):
                unpack(subdir, destination_eggdir)
            if os.path.exists(dist_data):
                os.rmdir(dist_data)
            # Fix namespace packages.
            namespace_packages = os.path.join(egg_info, 'namespace_packages.txt')
            if os.path.exists(namespace_packages):
                with open(namespace_packages) as fp:
                    namespace_packages = fp.read().split()
                for mod in namespace_packages:
                    mod_dir = os.path.join(destination_eggdir, *mod.split('.'))
                    mod_init = os.path.join(mod_dir, '__init__.py')
                    if os.path.exists(mod_dir) and not os.path.exists(mod_init):
                        with open(mod_init, 'w') as fp:
                            fp.write(NAMESPACE_PACKAGE_INIT)

SILENT KILLER Tool