blob: 3193cb8174fc3e3b68e7f0fe2ed0687016a3006e [file]
from concurrent.futures import Future
from typing import Any, TypeVar
import logging
from collections.abc import Callable
from .shared_types import ExecutorProtocol, TypedExecutorProtocol
A = TypeVar("A")
B = TypeVar("B")
T = TypeVar("T")
class RetryPolicy(object): ...
class ExceptionRetryPolicy(RetryPolicy):
def __init__(self, **kwargs): ...
class RetryExecutor(ExecutorProtocol):
def __init__(
self,
delegate,
retry_policy: Any | None = ...,
logger: logging.Logger | None = ...,
name: str = ...,
**kwargs
): ...
def submit_retry(
self, retry_policy: RetryPolicy, fn: Callable[..., T], *args, **kwargs
) -> Future[T]: ...
def __enter__(self) -> RetryExecutor: ...
class TypedRetryExecutor(TypedExecutorProtocol[A, B]):
def submit_retry(
self, retry_policy: RetryPolicy, fn: Callable[..., A], *args, **kwargs
) -> Future[B]: ...
def __enter__(self) -> TypedRetryExecutor[A, B]: ...