SILENT KILLERPanel

Current Path: > > opt > > hc_python > lib > python3.12 > site-packages > pip > _internal > utils


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: //opt//hc_python/lib/python3.12/site-packages/pip/_internal/utils

NameTypeSizeLast ModifiedActions
__pycache__ Directory - -
__init__.py File 0 bytes May 23 2025 10:34:25.
_jaraco_text.py File 3350 bytes May 23 2025 10:34:25.
_log.py File 1015 bytes May 23 2025 10:34:25.
appdirs.py File 1705 bytes May 23 2025 10:34:25.
compat.py File 2399 bytes May 23 2025 10:34:25.
compatibility_tags.py File 6662 bytes May 23 2025 10:34:25.
datetime.py File 241 bytes May 23 2025 10:34:25.
deprecation.py File 3707 bytes May 23 2025 10:34:25.
direct_url_helpers.py File 3196 bytes May 23 2025 10:34:25.
egg_link.py File 2463 bytes May 23 2025 10:34:25.
entrypoints.py File 3325 bytes May 23 2025 10:34:25.
filesystem.py File 4950 bytes May 23 2025 10:34:25.
filetypes.py File 715 bytes May 23 2025 10:34:25.
glibc.py File 3734 bytes May 23 2025 10:34:25.
hashes.py File 4972 bytes May 23 2025 10:34:25.
logging.py File 12076 bytes May 23 2025 10:34:25.
misc.py File 23450 bytes May 23 2025 10:34:25.
packaging.py File 1603 bytes May 23 2025 10:34:25.
retry.py File 1392 bytes May 23 2025 10:34:25.
setuptools_build.py File 4482 bytes May 23 2025 10:34:25.
subprocess.py File 8988 bytes May 23 2025 10:34:25.
temp_dir.py File 9310 bytes May 23 2025 10:34:25.
unpacking.py File 11926 bytes May 23 2025 10:34:25.
urls.py File 1599 bytes May 23 2025 10:34:25.
virtualenv.py File 3456 bytes May 23 2025 10:34:25.
wheel.py File 4493 bytes May 23 2025 10:34:25.

Reading File: //opt//hc_python/lib/python3.12/site-packages/pip/_internal/utils/retry.py

import functools
from time import perf_counter, sleep
from typing import Callable, TypeVar

from pip._vendor.typing_extensions import ParamSpec

T = TypeVar("T")
P = ParamSpec("P")


def retry(
    wait: float, stop_after_delay: float
) -> Callable[[Callable[P, T]], Callable[P, T]]:
    """Decorator to automatically retry a function on error.

    If the function raises, the function is recalled with the same arguments
    until it returns or the time limit is reached. When the time limit is
    surpassed, the last exception raised is reraised.

    :param wait: The time to wait after an error before retrying, in seconds.
    :param stop_after_delay: The time limit after which retries will cease,
        in seconds.
    """

    def wrapper(func: Callable[P, T]) -> Callable[P, T]:

        @functools.wraps(func)
        def retry_wrapped(*args: P.args, **kwargs: P.kwargs) -> T:
            # The performance counter is monotonic on all platforms we care
            # about and has much better resolution than time.monotonic().
            start_time = perf_counter()
            while True:
                try:
                    return func(*args, **kwargs)
                except Exception:
                    if perf_counter() - start_time > stop_after_delay:
                        raise
                    sleep(wait)

        return retry_wrapped

    return wrapper

SILENT KILLER Tool