[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.216.212.231: ~ $
from __future__ import absolute_import

import logging
import os
import textwrap

import pip._internal.utils.filesystem as filesystem
from pip._internal.cli.base_command import Command
from pip._internal.cli.status_codes import ERROR, SUCCESS
from pip._internal.exceptions import CommandError, PipError
from pip._internal.utils.typing import MYPY_CHECK_RUNNING

if MYPY_CHECK_RUNNING:
    from optparse import Values
    from typing import Any, List


logger = logging.getLogger(__name__)


class CacheCommand(Command):
    """
    Inspect and manage pip's wheel cache.

    Subcommands:

    - dir: Show the cache directory.
    - info: Show information about the cache.
    - list: List filenames of packages stored in the cache.
    - remove: Remove one or more package from the cache.
    - purge: Remove all items from the cache.

    ``<pattern>`` can be a glob expression or a package name.
    """

    ignore_require_venv = True
    usage = """
        %prog dir
        %prog info
        %prog list [<pattern>]
        %prog remove <pattern>
        %prog purge
    """

    def run(self, options, args):
        # type: (Values, List[Any]) -> int
        handlers = {
            "dir": self.get_cache_dir,
            "info": self.get_cache_info,
            "list": self.list_cache_items,
            "remove": self.remove_cache_items,
            "purge": self.purge_cache,
        }

        if not options.cache_dir:
            logger.error("pip cache commands can not "
                         "function since cache is disabled.")
            return ERROR

        # Determine action
        if not args or args[0] not in handlers:
            logger.error(
                "Need an action (%s) to perform.",
                ", ".join(sorted(handlers)),
            )
            return ERROR

        action = args[0]

        # Error handling happens here, not in the action-handlers.
        try:
            handlers[action](options, args[1:])
        except PipError as e:
            logger.error(e.args[0])
            return ERROR

        return SUCCESS

    def get_cache_dir(self, options, args):
        # type: (Values, List[Any]) -> None
        if args:
            raise CommandError('Too many arguments')

        logger.info(options.cache_dir)

    def get_cache_info(self, options, args):
        # type: (Values, List[Any]) -> None
        if args:
            raise CommandError('Too many arguments')

        num_packages = len(self._find_wheels(options, '*'))

        cache_location = self._wheels_cache_dir(options)
        cache_size = filesystem.format_directory_size(cache_location)

        message = textwrap.dedent("""
            Location: {location}
            Size: {size}
            Number of wheels: {package_count}
        """).format(
            location=cache_location,
            package_count=num_packages,
            size=cache_size,
        ).strip()

        logger.info(message)

    def list_cache_items(self, options, args):
        # type: (Values, List[Any]) -> None
        if len(args) > 1:
            raise CommandError('Too many arguments')

        if args:
            pattern = args[0]
        else:
            pattern = '*'

        files = self._find_wheels(options, pattern)

        if not files:
            logger.info('Nothing cached.')
            return

        results = []
        for filename in files:
            wheel = os.path.basename(filename)
            size = filesystem.format_file_size(filename)
            results.append(' - {} ({})'.format(wheel, size))
        logger.info('Cache contents:\n')
        logger.info('\n'.join(sorted(results)))

    def remove_cache_items(self, options, args):
        # type: (Values, List[Any]) -> None
        if len(args) > 1:
            raise CommandError('Too many arguments')

        if not args:
            raise CommandError('Please provide a pattern')

        files = self._find_wheels(options, args[0])
        if not files:
            raise CommandError('No matching packages')

        for filename in files:
            os.unlink(filename)
            logger.debug('Removed %s', filename)
        logger.info('Files removed: %s', len(files))

    def purge_cache(self, options, args):
        # type: (Values, List[Any]) -> None
        if args:
            raise CommandError('Too many arguments')

        return self.remove_cache_items(options, ['*'])

    def _wheels_cache_dir(self, options):
        # type: (Values) -> str
        return os.path.join(options.cache_dir, 'wheels')

    def _find_wheels(self, options, pattern):
        # type: (Values, str) -> List[str]
        wheel_dir = self._wheels_cache_dir(options)

        # The wheel filename format, as specified in PEP 427, is:
        #     {distribution}-{version}(-{build})?-{python}-{abi}-{platform}.whl
        #
        # Additionally, non-alphanumeric values in the distribution are
        # normalized to underscores (_), meaning hyphens can never occur
        # before `-{version}`.
        #
        # Given that information:
        # - If the pattern we're given contains a hyphen (-), the user is
        #   providing at least the version. Thus, we can just append `*.whl`
        #   to match the rest of it.
        # - If the pattern we're given doesn't contain a hyphen (-), the
        #   user is only providing the name. Thus, we append `-*.whl` to
        #   match the hyphen before the version, followed by anything else.
        #
        # PEP 427: https://www.python.org/dev/peps/pep-0427/
        pattern = pattern + ("*.whl" if "-" in pattern else "-*.whl")

        return filesystem.find_files(wheel_dir, pattern)

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
.__init__.pyo.40009 File 3.48 KB 0644
.cache.pyo.40009 File 5.45 KB 0644
.check.pyo.40009 File 1.91 KB 0644
.completion.pyo.40009 File 3.51 KB 0644
.configuration.pyo.40009 File 9.52 KB 0644
.debug.pyo.40009 File 7.9 KB 0644
.download.pyo.40009 File 4.7 KB 0644
.freeze.pyo.40009 File 3.69 KB 0644
.hash.pyo.40009 File 2.67 KB 0644
.help.pyo.40009 File 1.68 KB 0644
.list.pyo.40009 File 10.33 KB 0644
.show.pyo.40009 File 6.59 KB 0644
.uninstall.pyo.40009 File 3.47 KB 0644
__init__.py File 4 KB 0644
__init__.pyc File 3.48 KB 0644
__init__.pyo File 3.48 KB 0644
cache.py File 5.54 KB 0644
cache.pyc File 5.45 KB 0644
cache.pyo File 5.45 KB 0644
check.py File 1.64 KB 0644
check.pyc File 1.91 KB 0644
check.pyo File 1.91 KB 0644
completion.py File 3.01 KB 0644
completion.pyc File 3.51 KB 0644
completion.pyo File 3.51 KB 0644
configuration.py File 9.13 KB 0644
configuration.pyc File 9.52 KB 0644
configuration.pyo File 9.52 KB 0644
debug.py File 7.14 KB 0644
debug.pyc File 7.9 KB 0644
debug.pyo File 7.9 KB 0644
download.py File 4.8 KB 0644
download.pyc File 4.7 KB 0644
download.pyo File 4.7 KB 0644
freeze.py File 3.37 KB 0644
freeze.pyc File 3.69 KB 0644
freeze.pyo File 3.69 KB 0644
hash.py File 1.8 KB 0644
hash.pyc File 2.67 KB 0644
hash.pyo File 2.67 KB 0644
help.py File 1.24 KB 0644
help.pyc File 1.68 KB 0644
help.pyo File 1.68 KB 0644
install.py File 28.05 KB 0644
install.pyc File 20.44 KB 0644
install.pyo File 20.38 KB 0644
list.py File 11.05 KB 0644
list.pyc File 10.33 KB 0644
list.pyo File 10.33 KB 0644
search.py File 5.62 KB 0644
search.pyc File 5.81 KB 0644
search.pyo File 5.77 KB 0644
show.py File 6.83 KB 0644
show.pyc File 6.59 KB 0644
show.pyo File 6.59 KB 0644
uninstall.py File 3.23 KB 0644
uninstall.pyc File 3.47 KB 0644
uninstall.pyo File 3.47 KB 0644
wheel.py File 6.27 KB 0644
wheel.pyc File 5.8 KB 0644
wheel.pyo File 5.72 KB 0644