404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.145.73.167: ~ $
from glob import glob
from distutils.util import convert_path
import distutils.command.build_py as orig
import os
import fnmatch
import textwrap
import io
import distutils.errors
import itertools

from setuptools.extern import six
from setuptools.extern.six.moves import map, filter, filterfalse

try:
    from setuptools.lib2to3_ex import Mixin2to3
except ImportError:

    class Mixin2to3:
        def run_2to3(self, files, doctests=True):
            "do nothing"


class build_py(orig.build_py, Mixin2to3):
    """Enhanced 'build_py' command that includes data files with packages

    The data files are specified via a 'package_data' argument to 'setup()'.
    See 'setuptools.dist.Distribution' for more details.

    Also, this version of the 'build_py' command allows you to specify both
    'py_modules' and 'packages' in the same setup operation.
    """

    def finalize_options(self):
        orig.build_py.finalize_options(self)
        self.package_data = self.distribution.package_data
        self.exclude_package_data = (self.distribution.exclude_package_data or
                                     {})
        if 'data_files' in self.__dict__:
            del self.__dict__['data_files']
        self.__updated_files = []
        self.__doctests_2to3 = []

    def run(self):
        """Build modules, packages, and copy data files to build directory"""
        if not self.py_modules and not self.packages:
            return

        if self.py_modules:
            self.build_modules()

        if self.packages:
            self.build_packages()
            self.build_package_data()

        self.run_2to3(self.__updated_files, False)
        self.run_2to3(self.__updated_files, True)
        self.run_2to3(self.__doctests_2to3, True)

        # Only compile actual .py files, using our base class' idea of what our
        # output files are.
        self.byte_compile(orig.build_py.get_outputs(self, include_bytecode=0))

    def __getattr__(self, attr):
        "lazily compute data files"
        if attr == 'data_files':
            self.data_files = self._get_data_files()
            return self.data_files
        return orig.build_py.__getattr__(self, attr)

    def build_module(self, module, module_file, package):
        if six.PY2 and isinstance(package, six.string_types):
            # avoid errors on Python 2 when unicode is passed (#190)
            package = package.split('.')
        outfile, copied = orig.build_py.build_module(self, module, module_file,
                                                     package)
        if copied:
            self.__updated_files.append(outfile)
        return outfile, copied

    def _get_data_files(self):
        """Generate list of '(package,src_dir,build_dir,filenames)' tuples"""
        self.analyze_manifest()
        return list(map(self._get_pkg_data_files, self.packages or ()))

    def _get_pkg_data_files(self, package):
        # Locate package source directory
        src_dir = self.get_package_dir(package)

        # Compute package build directory
        build_dir = os.path.join(*([self.build_lib] + package.split('.')))

        # Strip directory from globbed filenames
        filenames = [
            os.path.relpath(file, src_dir)
            for file in self.find_data_files(package, src_dir)
        ]
        return package, src_dir, build_dir, filenames

    def find_data_files(self, package, src_dir):
        """Return filenames for package's data files in 'src_dir'"""
        patterns = self._get_platform_patterns(
            self.package_data,
            package,
            src_dir,
        )
        globs_expanded = map(glob, patterns)
        # flatten the expanded globs into an iterable of matches
        globs_matches = itertools.chain.from_iterable(globs_expanded)
        glob_files = filter(os.path.isfile, globs_matches)
        files = itertools.chain(
            self.manifest_files.get(package, []),
            glob_files,
        )
        return self.exclude_data_files(package, src_dir, files)

    def build_package_data(self):
        """Copy data files into build directory"""
        for package, src_dir, build_dir, filenames in self.data_files:
            for filename in filenames:
                target = os.path.join(build_dir, filename)
                self.mkpath(os.path.dirname(target))
                srcfile = os.path.join(src_dir, filename)
                outf, copied = self.copy_file(srcfile, target)
                srcfile = os.path.abspath(srcfile)
                if (copied and
                        srcfile in self.distribution.convert_2to3_doctests):
                    self.__doctests_2to3.append(outf)

    def analyze_manifest(self):
        self.manifest_files = mf = {}
        if not self.distribution.include_package_data:
            return
        src_dirs = {}
        for package in self.packages or ():
            # Locate package source directory
            src_dirs[assert_relative(self.get_package_dir(package))] = package

        self.run_command('egg_info')
        ei_cmd = self.get_finalized_command('egg_info')
        for path in ei_cmd.filelist.files:
            d, f = os.path.split(assert_relative(path))
            prev = None
            oldf = f
            while d and d != prev and d not in src_dirs:
                prev = d
                d, df = os.path.split(d)
                f = os.path.join(df, f)
            if d in src_dirs:
                if path.endswith('.py') and f == oldf:
                    continue  # it's a module, not data
                mf.setdefault(src_dirs[d], []).append(path)

    def get_data_files(self):
        pass  # Lazily compute data files in _get_data_files() function.

    def check_package(self, package, package_dir):
        """Check namespace packages' __init__ for declare_namespace"""
        try:
            return self.packages_checked[package]
        except KeyError:
            pass

        init_py = orig.build_py.check_package(self, package, package_dir)
        self.packages_checked[package] = init_py

        if not init_py or not self.distribution.namespace_packages:
            return init_py

        for pkg in self.distribution.namespace_packages:
            if pkg == package or pkg.startswith(package + '.'):
                break
        else:
            return init_py

        with io.open(init_py, 'rb') as f:
            contents = f.read()
        if b'declare_namespace' not in contents:
            raise distutils.errors.DistutilsError(
                "Namespace package problem: %s is a namespace package, but "
                "its\n__init__.py does not call declare_namespace()! Please "
                'fix it.\n(See the setuptools manual under '
                '"Namespace Packages" for details.)\n"' % (package,)
            )
        return init_py

    def initialize_options(self):
        self.packages_checked = {}
        orig.build_py.initialize_options(self)

    def get_package_dir(self, package):
        res = orig.build_py.get_package_dir(self, package)
        if self.distribution.src_root is not None:
            return os.path.join(self.distribution.src_root, res)
        return res

    def exclude_data_files(self, package, src_dir, files):
        """Filter filenames for package's data files in 'src_dir'"""
        files = list(files)
        patterns = self._get_platform_patterns(
            self.exclude_package_data,
            package,
            src_dir,
        )
        match_groups = (
            fnmatch.filter(files, pattern)
            for pattern in patterns
        )
        # flatten the groups of matches into an iterable of matches
        matches = itertools.chain.from_iterable(match_groups)
        bad = set(matches)
        keepers = (
            fn
            for fn in files
            if fn not in bad
        )
        # ditch dupes
        return list(_unique_everseen(keepers))

    @staticmethod
    def _get_platform_patterns(spec, package, src_dir):
        """
        yield platform-specific path patterns (suitable for glob
        or fn_match) from a glob-based spec (such as
        self.package_data or self.exclude_package_data)
        matching package in src_dir.
        """
        raw_patterns = itertools.chain(
            spec.get('', []),
            spec.get(package, []),
        )
        return (
            # Each pattern has to be converted to a platform-specific path
            os.path.join(src_dir, convert_path(pattern))
            for pattern in raw_patterns
        )


# from Python docs
def _unique_everseen(iterable, key=None):
    "List unique elements, preserving order. Remember all elements ever seen."
    # unique_everseen('AAAABBBCCDAABBB') --> A B C D
    # unique_everseen('ABBCcAD', str.lower) --> A B C D
    seen = set()
    seen_add = seen.add
    if key is None:
        for element in filterfalse(seen.__contains__, iterable):
            seen_add(element)
            yield element
    else:
        for element in iterable:
            k = key(element)
            if k not in seen:
                seen_add(k)
                yield element


def assert_relative(path):
    if not os.path.isabs(path):
        return path
    from distutils.errors import DistutilsSetupError

    msg = textwrap.dedent("""
        Error: setup script specifies an absolute path:

            %s

        setup() arguments must *always* be /-separated paths relative to the
        setup.py directory, *never* absolute paths.
        """).lstrip() % path
    raise DistutilsSetupError(msg)

Filemanager

Name Type Size Permission Actions
__init__.py File 594 B 0644
__init__.pyc File 882 B 0644
__init__.pyo File 882 B 0644
alias.py File 2.37 KB 0644
alias.pyc File 3.03 KB 0644
alias.pyo File 3.03 KB 0644
bdist_egg.py File 17.76 KB 0644
bdist_egg.pyc File 17.96 KB 0644
bdist_egg.pyo File 17.96 KB 0644
bdist_rpm.py File 1.47 KB 0644
bdist_rpm.pyc File 1.87 KB 0644
bdist_rpm.pyo File 1.87 KB 0644
bdist_wininst.py File 637 B 0644
bdist_wininst.pyc File 1.16 KB 0644
bdist_wininst.pyo File 1.16 KB 0644
build_clib.py File 4.38 KB 0644
build_clib.pyc File 2.78 KB 0644
build_clib.pyo File 2.78 KB 0644
build_ext.py File 12.86 KB 0644
build_ext.pyc File 12.28 KB 0644
build_ext.pyo File 12.23 KB 0644
build_py.py File 9.37 KB 0644
build_py.pyc File 10.42 KB 0644
build_py.pyo File 10.42 KB 0644
develop.py File 7.86 KB 0644
develop.pyc File 7.71 KB 0644
develop.pyo File 7.71 KB 0644
dist_info.py File 960 B 0644
dist_info.pyc File 1.76 KB 0644
dist_info.pyo File 1.76 KB 0644
easy_install.py File 84.99 KB 0644
easy_install.pyc File 78.5 KB 0644
easy_install.pyo File 78.44 KB 0644
egg_info.py File 24.22 KB 0644
egg_info.pyc File 25.29 KB 0644
egg_info.pyo File 25.29 KB 0644
install.py File 4.57 KB 0644
install.pyc File 4.84 KB 0644
install.pyo File 4.84 KB 0644
install_egg_info.py File 2.15 KB 0644
install_egg_info.pyc File 3.11 KB 0644
install_egg_info.pyo File 3.11 KB 0644
install_lib.py File 3.75 KB 0644
install_lib.pyc File 4.76 KB 0644
install_lib.pyo File 4.71 KB 0644
install_scripts.py File 2.38 KB 0644
install_scripts.pyc File 2.82 KB 0644
install_scripts.pyo File 2.82 KB 0644
launcher manifest.xml File 628 B 0644
py36compat.py File 4.87 KB 0644
py36compat.pyc File 5.42 KB 0644
py36compat.pyo File 5.42 KB 0644
register.py File 270 B 0644
register.pyc File 710 B 0644
register.pyo File 710 B 0644
rotate.py File 2.11 KB 0644
rotate.pyc File 2.96 KB 0644
rotate.pyo File 2.96 KB 0644
saveopts.py File 658 B 0644
saveopts.pyc File 1.1 KB 0644
saveopts.pyo File 1.1 KB 0644
sdist.py File 6.55 KB 0644
sdist.pyc File 7.64 KB 0644
sdist.pyo File 7.64 KB 0644
setopt.py File 4.97 KB 0644
setopt.pyc File 5.91 KB 0644
setopt.pyo File 5.91 KB 0644
test.py File 9 KB 0644
test.pyc File 10.22 KB 0644
test.pyo File 10.22 KB 0644
upload.py File 1.14 KB 0644
upload.pyc File 1.6 KB 0644
upload.pyo File 1.6 KB 0644
upload_docs.py File 7.14 KB 0644
upload_docs.pyc File 7.66 KB 0644
upload_docs.pyo File 7.63 KB 0644