[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.21.46.13: ~ $
"""HTTP cache implementation.
"""

import os
from contextlib import contextmanager

from pip._vendor.cachecontrol.cache import BaseCache
from pip._vendor.cachecontrol.caches import FileCache
from pip._vendor.requests.models import Response

from pip._internal.utils.filesystem import adjacent_tmp_file, replace
from pip._internal.utils.misc import ensure_dir
from pip._internal.utils.typing import MYPY_CHECK_RUNNING

if MYPY_CHECK_RUNNING:
    from typing import Optional, Iterator


def is_from_cache(response):
    # type: (Response) -> bool
    return getattr(response, "from_cache", False)


@contextmanager
def suppressed_cache_errors():
    # type: () -> Iterator[None]
    """If we can't access the cache then we can just skip caching and process
    requests as if caching wasn't enabled.
    """
    try:
        yield
    except (OSError, IOError):
        pass


class SafeFileCache(BaseCache):
    """
    A file based cache which is safe to use even when the target directory may
    not be accessible or writable.
    """

    def __init__(self, directory):
        # type: (str) -> None
        assert directory is not None, "Cache directory must not be None."
        super(SafeFileCache, self).__init__()
        self.directory = directory

    def _get_cache_path(self, name):
        # type: (str) -> str
        # From cachecontrol.caches.file_cache.FileCache._fn, brought into our
        # class for backwards-compatibility and to avoid using a non-public
        # method.
        hashed = FileCache.encode(name)
        parts = list(hashed[:5]) + [hashed]
        return os.path.join(self.directory, *parts)

    def get(self, key):
        # type: (str) -> Optional[bytes]
        path = self._get_cache_path(key)
        with suppressed_cache_errors():
            with open(path, 'rb') as f:
                return f.read()

    def set(self, key, value):
        # type: (str, bytes) -> None
        path = self._get_cache_path(key)
        with suppressed_cache_errors():
            ensure_dir(os.path.dirname(path))

            with adjacent_tmp_file(path) as f:
                f.write(value)

            replace(f.name, path)

    def delete(self, key):
        # type: (str) -> None
        path = self._get_cache_path(key)
        with suppressed_cache_errors():
            os.remove(path)

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
.__init__.pyo.40009 File 232 B 0644
.session.pyo.40009 File 11.58 KB 0644
.utils.pyo.40009 File 1.74 KB 0644
__init__.py File 50 B 0644
__init__.pyc File 232 B 0644
__init__.pyo File 232 B 0644
auth.py File 11.38 KB 0644
auth.pyc File 8.48 KB 0644
auth.pyo File 8.27 KB 0644
cache.py File 2.27 KB 0644
cache.pyc File 3.39 KB 0644
cache.pyo File 3.3 KB 0644
download.py File 5.03 KB 0644
download.pyc File 5.77 KB 0644
download.pyo File 5.73 KB 0644
lazy_wheel.py File 7.95 KB 0644
lazy_wheel.pyc File 9.87 KB 0644
lazy_wheel.pyo File 9.81 KB 0644
session.py File 14.85 KB 0644
session.pyc File 11.58 KB 0644
session.pyo File 11.58 KB 0644
utils.py File 4.07 KB 0644
utils.pyc File 1.74 KB 0644
utils.pyo File 1.74 KB 0644
xmlrpc.py File 1.84 KB 0644
xmlrpc.pyc File 2.27 KB 0644
xmlrpc.pyo File 2.24 KB 0644