1111
1212
1313class Flagsmith :
14- def __init__ (self , environment_id , api = SERVER_URL ):
14+ def __init__ (self , environment_id , api = SERVER_URL , request_timeout = None ):
1515 """
1616 Initialise Flagsmith environment.
1717
1818 :param environment_id: environment key obtained from the Flagsmith UI
1919 :param api: (optional) api url to override when using self hosted version
20+ :param request_timeout: (optional) request timeout in seconds
2021 """
2122 self .environment_id = environment_id
2223 self .api = api
2324 self .flags_endpoint = api + FLAGS_ENDPOINT
2425 self .identities_endpoint = api + IDENTITY_ENDPOINT
2526 self .traits_endpoint = api + TRAIT_ENDPOINT
27+ self .request_timeout = request_timeout
2628
2729 def get_flags (self , identity = None ):
2830 """
@@ -152,7 +154,10 @@ def set_trait(self, trait_key, trait_value, identity):
152154 }
153155
154156 requests .post (
155- self .traits_endpoint , json = payload , headers = self ._generate_header_content ()
157+ self .traits_endpoint ,
158+ json = payload ,
159+ headers = self ._generate_header_content (),
160+ timeout = self .request_timeout ,
156161 )
157162
158163 def _get_flags_response (self , feature_name = None , identity = None ):
@@ -172,12 +177,14 @@ def _get_flags_response(self, feature_name=None, identity=None):
172177 self .identities_endpoint ,
173178 params = params ,
174179 headers = self ._generate_header_content (),
180+ timeout = self .request_timeout ,
175181 )
176182 else :
177183 response = requests .get (
178184 self .flags_endpoint ,
179185 params = params ,
180186 headers = self ._generate_header_content (),
187+ timeout = self .request_timeout ,
181188 )
182189
183190 if response .status_code == 200 :
0 commit comments