22 lines
842 B
Python
22 lines
842 B
Python
from t_tech.invest import AsyncClient
|
|
from t_tech.invest.retrying.aio.grpc_interceptor import AsyncRetryClientInterceptor
|
|
from t_tech.invest.retrying.aio.retry_manager import AsyncRetryManager
|
|
from t_tech.invest.retrying.settings_protocol import RetryClientSettingsProtocol
|
|
|
|
|
|
class AsyncRetryingClient(AsyncClient):
|
|
def __init__(
|
|
self,
|
|
token: str,
|
|
settings: RetryClientSettingsProtocol,
|
|
**kwargs,
|
|
):
|
|
self._retry_manager = AsyncRetryManager(settings=settings)
|
|
self._retry_interceptor = AsyncRetryClientInterceptor(
|
|
retry_manager=self._retry_manager
|
|
)
|
|
interceptors = kwargs.get("interceptors", [])
|
|
interceptors.append(self._retry_interceptor)
|
|
kwargs["interceptors"] = interceptors
|
|
super().__init__(token, **kwargs)
|