Skip to content

Commit

Permalink
Renames
Browse files Browse the repository at this point in the history
  • Loading branch information
Pliner committed Aug 27, 2024
1 parent 4207a97 commit a082ab8
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 12 deletions.
10 changes: 5 additions & 5 deletions aio_request/delays_provider.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
import collections.abc
import random

DELAYS_PROVIDER = collections.abc.Callable[[int], float]
DelaysProvider = collections.abc.Callable[[int], float]


def constant_delays(*, delay: float = 0) -> DELAYS_PROVIDER:
def constant_delays(*, delay: float = 0) -> DelaysProvider:
return lambda _: delay


def linear_backoff_delays(
*, min_delay_seconds: float = 0, delay_multiplier: float = 0.05, jitter: float = 0.2
) -> DELAYS_PROVIDER:
def _linear(attempt: int) -> float:
) -> DelaysProvider:
def __linear_backoff_delays(attempt: int) -> float:
delay = min_delay_seconds + attempt * delay_multiplier
jitter_amount = delay * random.random() * jitter
if random.random() < 0.5:
jitter_amount = -jitter_amount
return delay + jitter_amount

return _linear
return __linear_backoff_delays


linear_delays = linear_backoff_delays
14 changes: 7 additions & 7 deletions aio_request/request_strategy.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

from .base import ClosableResponse, Request, Response
from .deadline import Deadline
from .delays_provider import DELAYS_PROVIDER, linear_backoff_delays
from .delays_provider import DelaysProvider, linear_backoff_delays
from .priority import Priority
from .response_classifier import ResponseVerdict
from .utils import Closable, cancel_futures, close, close_futures, close_single
Expand Down Expand Up @@ -69,19 +69,19 @@ def single_attempt_strategy() -> RequestStrategy:


def sequential_strategy(
*, attempts_count: int = 3, delays_provider: DELAYS_PROVIDER = linear_backoff_delays()
*, attempts_count: int = 3, delays_provider: DelaysProvider = linear_backoff_delays()
) -> RequestStrategy:
return SequentialRequestStrategy(attempts_count=attempts_count, delays_provider=delays_provider)


def parallel_strategy(
*, attempts_count: int = 3, delays_provider: DELAYS_PROVIDER = linear_backoff_delays()
*, attempts_count: int = 3, delays_provider: DelaysProvider = linear_backoff_delays()
) -> RequestStrategy:
return ParallelRequestStrategy(attempts_count=attempts_count, delays_provider=delays_provider)


def retry_until_deadline_expired(
strategy: RequestStrategy, *, delays_provider: DELAYS_PROVIDER = linear_backoff_delays()
strategy: RequestStrategy, *, delays_provider: DelaysProvider = linear_backoff_delays()
) -> RequestStrategy:
return RetryUntilDeadlineExpiredStrategy(strategy, delays_provider)

Expand Down Expand Up @@ -120,7 +120,7 @@ def __init__(
self,
*,
attempts_count: int,
delays_provider: DELAYS_PROVIDER,
delays_provider: DelaysProvider,
):
if attempts_count < 1:
raise RuntimeError("Attempts count should be >= 1")
Expand Down Expand Up @@ -169,7 +169,7 @@ def __init__(
self,
*,
attempts_count: int,
delays_provider: DELAYS_PROVIDER,
delays_provider: DelaysProvider,
):
if attempts_count < 1:
raise RuntimeError("Attempts count should be >= 1")
Expand Down Expand Up @@ -243,7 +243,7 @@ def __repr__(self) -> str:
class RetryUntilDeadlineExpiredStrategy(RequestStrategy):
__slots__ = ("_base_strategy", "_delays_provider")

def __init__(self, base_strategy: RequestStrategy, delays_provider: DELAYS_PROVIDER):
def __init__(self, base_strategy: RequestStrategy, delays_provider: DelaysProvider):
self._delays_provider = delays_provider
self._base_strategy = base_strategy

Expand Down

0 comments on commit a082ab8

Please sign in to comment.