Spaces:
Paused
Paused
Download myenv/lib/python3.12/site-packages/backoff/_wait_gen.py from Dhenenjay/Term-4-Project: direct link, hf CLI and curl.
- Browser
- Download file 2.4 kB
-
https://huggingface.co/spaces/Dhenenjay/Term-4-Project/resolve/main/myenv/lib/python3.12/site-packages/backoff/_wait_gen.py
- Command line
-
hf download hf://spaces/Dhenenjay/Term-4-Project/myenv/lib/python3.12/site-packages/backoff/_wait_gen.py
-
curl -L -o _wait_gen.py https://huggingface.co/spaces/Dhenenjay/Term-4-Project/resolve/main/myenv/lib/python3.12/site-packages/backoff/_wait_gen.py
2.4 kB
| # coding:utf-8 | |
| import itertools | |
| from typing import Any, Callable, Generator, Iterable, Optional, Union | |
| def expo( | |
| base: float = 2, | |
| factor: float = 1, | |
| max_value: Optional[float] = None | |
| ) -> Generator[float, Any, None]: | |
| """Generator for exponential decay. | |
| Args: | |
| base: The mathematical base of the exponentiation operation | |
| factor: Factor to multiply the exponentiation by. | |
| max_value: The maximum value to yield. Once the value in the | |
| true exponential sequence exceeds this, the value | |
| of max_value will forever after be yielded. | |
| """ | |
| # Advance past initial .send() call | |
| yield # type: ignore[misc] | |
| n = 0 | |
| while True: | |
| a = factor * base ** n | |
| if max_value is None or a < max_value: | |
| yield a | |
| n += 1 | |
| else: | |
| yield max_value | |
| def fibo(max_value: Optional[int] = None) -> Generator[int, None, None]: | |
| """Generator for fibonaccial decay. | |
| Args: | |
| max_value: The maximum value to yield. Once the value in the | |
| true fibonacci sequence exceeds this, the value | |
| of max_value will forever after be yielded. | |
| """ | |
| # Advance past initial .send() call | |
| yield # type: ignore[misc] | |
| a = 1 | |
| b = 1 | |
| while True: | |
| if max_value is None or a < max_value: | |
| yield a | |
| a, b = b, a + b | |
| else: | |
| yield max_value | |
| def constant( | |
| interval: Union[int, Iterable[float]] = 1 | |
| ) -> Generator[float, None, None]: | |
| """Generator for constant intervals. | |
| Args: | |
| interval: A constant value to yield or an iterable of such values. | |
| """ | |
| # Advance past initial .send() call | |
| yield # type: ignore[misc] | |
| try: | |
| itr = iter(interval) # type: ignore | |
| except TypeError: | |
| itr = itertools.repeat(interval) # type: ignore | |
| for val in itr: | |
| yield val | |
| def runtime( | |
| *, | |
| value: Callable[[Any], float] | |
| ) -> Generator[float, None, None]: | |
| """Generator that is based on parsing the return value or thrown | |
| exception of the decorated method | |
| Args: | |
| value: a callable which takes as input the decorated | |
| function's return value or thrown exception and | |
| determines how long to wait | |
| """ | |
| ret_or_exc = yield # type: ignore[misc] | |
| while True: | |
| ret_or_exc = yield value(ret_or_exc) | |