openfga / python-sdk

OpenFGA SDK for Python 3 - https://pypi.org/project/openfga-sdk/
https://openfga.dev
Apache License 2.0
37 stars 15 forks source link

Users want to have control over the request timeout #118

Open rhamzeh opened 3 months ago

rhamzeh commented 3 months ago

Checklist

Description

OpenFgaApi methods support passing in a _request_timeout: https://github.com/openfga/python-sdk/blob/e82545e8ae2bdd4064ce846d8eb4a11c95359e85/openfga_sdk/sync/open_fga_api.py#L64-L67

However the options_to_kwargs https://github.com/openfga/python-sdk/blob/e82545e8ae2bdd4064ce846d8eb4a11c95359e85/openfga_sdk/sync/client/client.py#L92-L106 does not pass in that option down from the OpenFgaClient methods to the OpenFgaApi methods

Expectation

A user should be able to set the request timeout on a method.

Note that instead of just allowing passing in _request_timeout per method, this should be done like in the Java SDK.

Users should be able to configure a default timeout in the Configuration/ClientConfiguration, and override it per method.

Example in Java: https://github.com/openfga/java-sdk/blob/b1e03e523c530824f5921313c2191dc5f6d93af8/src/main/java/dev/openfga/sdk/api/configuration/BaseConfiguration.java#L22-L24

Reproduction

.

OpenFGA SDK version

v0.6.1

OpenFGA version

N/A

SDK Configuration

N/A

Logs

No response

References

https://cloud-native.slack.com/archives/C06G1NNH47N/p1723022081318009

GMorris-professional commented 1 month ago

I'd like to pick this up πŸ˜€ Nevermind I see there is a PR for this already πŸ‘

rhamzeh commented 1 week ago

@Oscmage you have a draft PR for this - are you still working on it?

If not, would you mind if @ryanpq steps in to help take it to completion?

Oscmage commented 1 week ago

Please be my guest!

ryanpq commented 4 days ago

I've revised the updates in the PR to use milliseconds as advised for consistency across sdks while still passing second values to requests and urllib3 as they require.

Oscmage commented 1 day ago

@ryanpq Thanks a lot for taking this all the way.