opt
/
hc_python
/
lib
/
python3.12
/
site-packages
/
pip
/
_internal
/
utils
/
Go to Home Directory
+
Upload
Create File
root@0UT1S:~$
Execute
By Order of Mr.0UT1S
[DIR] ..
N/A
[DIR] __pycache__
N/A
__init__.py
0 bytes
Rename
Delete
_jaraco_text.py
3.27 KB
Rename
Delete
_log.py
1015 bytes
Rename
Delete
appdirs.py
1.63 KB
Rename
Delete
compat.py
2.34 KB
Rename
Delete
compatibility_tags.py
6.13 KB
Rename
Delete
datetime.py
242 bytes
Rename
Delete
deprecation.py
3.62 KB
Rename
Delete
direct_url_helpers.py
3.12 KB
Rename
Delete
egg_link.py
2.41 KB
Rename
Delete
entrypoints.py
2.99 KB
Rename
Delete
filesystem.py
4.83 KB
Rename
Delete
filetypes.py
716 bytes
Rename
Delete
glibc.py
3.65 KB
Rename
Delete
hashes.py
4.86 KB
Rename
Delete
logging.py
11.57 KB
Rename
Delete
misc.py
22.90 KB
Rename
Delete
packaging.py
2.09 KB
Rename
Delete
retry.py
1.36 KB
Rename
Delete
setuptools_build.py
4.33 KB
Rename
Delete
subprocess.py
8.78 KB
Rename
Delete
temp_dir.py
9.09 KB
Rename
Delete
unpacking.py
11.69 KB
Rename
Delete
urls.py
1.56 KB
Rename
Delete
virtualenv.py
3.38 KB
Rename
Delete
wheel.py
4.39 KB
Rename
Delete
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
Save