/usr/lib/imh-scan/venv/lib/python3.13/site-packages/pip/_internal/utils
NameSizeModeActions
__pycache__/-0755rm
appdirs.py16810644editdlrm
compat.py25140644editdlrm
compatibility_tags.py66300644editdlrm
datetime.py2410644editdlrm
deprecation.py36960644editdlrm
direct_url_helpers.py32000644editdlrm
egg_link.py24590644editdlrm
entrypoints.py33240644editdlrm
filesystem.py54970644editdlrm
filetypes.py6890644editdlrm
glibc.py37260644editdlrm
hashes.py49980644editdlrm
logging.py121080644editdlrm
misc.py233740644editdlrm
packaging.py16010644editdlrm
retry.py14610644editdlrm
subprocess.py89830644editdlrm
temp_dir.py93070644editdlrm
unpacking.py129740644editdlrm
urls.py16010644editdlrm
virtualenv.py34550644editdlrm
wheel.py44680644editdlrm
_jaraco_text.py33500644editdlrm
_log.py10150644editdlrm
__init__.py00644editdlrm
Edit: /usr/lib/imh-scan/venv/lib/python3.13/site-packages/pip/_internal/utils/retry.py (1461B)
from __future__ import annotations import functools from time import perf_counter, sleep from typing import TYPE_CHECKING, Callable, TypeVar if TYPE_CHECKING: from 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