Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions generated/groundlight_openapi_client/rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,12 @@ def request(
except urllib3.exceptions.SSLError as e:
msg = "{0}\n{1}".format(type(e).__name__, str(e))
raise ApiException(status=0, reason=msg)
except urllib3.exceptions.MaxRetryError as e:
msg = "{0}\n{1}".format(type(e).__name__, str(e))
raise ApiException(status=0, reason=msg)
except urllib3.exceptions.ProtocolError as e:
msg = "{0}\n{1}".format(type(e).__name__, str(e))
raise ApiException(status=0, reason=msg)
Comment on lines +221 to +226
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was this manually added? This is a generated file so these changes will be wiped out every time it's re-generated.


if _preload_content:
r = RESTResponse(r)
Expand Down
20 changes: 17 additions & 3 deletions src/groundlight/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,19 @@
# It used to take >8 min to timeout to a bad IP address
DEFAULT_REQUEST_TIMEOUT = 10 # seconds

# Default urllib3 transport-level retry policy. Handles stale/dead pooled
# connections (RemoteDisconnected) that occur when the server (ALB / nginx)
# closes an idle keep-alive connection before the client reuses it.
DEFAULT_HTTP_TRANSPORT_RETRY = Retry(
total=3,
connect=3,
read=3,
redirect=3,
backoff_factor=0.2,
allowed_methods=None, # retry all HTTP methods including POST
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm concerned about retrying POST requests because that could lead to e.g. duplicate IQ submissions if the request makes it to the server but an error occurs when reading the response.

raise_on_status=False, # let the SDK's own status-code handling run
)


class GroundlightClientError(Exception):
pass
Expand Down Expand Up @@ -156,9 +169,10 @@ def __init__(
# Specify the endpoint
self.endpoint = sanitize_endpoint_url(endpoint)
self.configuration = Configuration(host=self.endpoint)
if http_transport_retries is not None:
# Once we upgrade openapitools to ^7.7.0, retries can be passed into the constructor of Configuration above.
self.configuration.retries = http_transport_retries
# Once we upgrade openapitools to ^7.7.0, retries can be passed into the constructor of Configuration above.
self.configuration.retries = (
http_transport_retries if http_transport_retries is not None else DEFAULT_HTTP_TRANSPORT_RETRY
)

if not api_token:
try:
Expand Down
Loading