diff --git a/src/codeocean/client.py b/src/codeocean/client.py index 7d291b5..3b14056 100644 --- a/src/codeocean/client.py +++ b/src/codeocean/client.py @@ -1,6 +1,8 @@ -from requests_toolbelt.sessions import BaseUrlSession -from requests_toolbelt.adapters.socket_options import TCPKeepAliveAdapter from dataclasses import dataclass +from requests_toolbelt.adapters.socket_options import TCPKeepAliveAdapter +from requests_toolbelt.sessions import BaseUrlSession +from typing import Optional +from urllib3.util import Retry from codeocean.capsule import Capsules from codeocean.computation import Computations @@ -12,15 +14,16 @@ class CodeOcean: domain: str token: str + retries: Optional[Retry] = None def __post_init__(self): self.session = BaseUrlSession(base_url=f"{self.domain}/api/v1/") self.session.auth = (self.token, "") - self.session.mount(self.domain, TCPKeepAliveAdapter()) self.session.headers.update({"Content-Type": "application/json"}) self.session.hooks["response"] = [ lambda response, *args, **kwargs: response.raise_for_status() ] + self.session.mount(self.domain, TCPKeepAliveAdapter(max_retries=self.retries)) self.capsules = Capsules(client=self.session) self.computations = Computations(client=self.session)