@@ -50,7 +50,8 @@ def build_url(self, options: dict) -> str:
5050 raise ValueError (ERRORS .INVALID_TRANSFORMATION_POSITION .value )
5151
5252 if src or (
53- options .get ("transformation_position" ) == QUERY_TRANSFORMATION_POSITION
53+ options .get (
54+ "transformation_position" ) == QUERY_TRANSFORMATION_POSITION
5455 ):
5556 src_param_used_for_url = True
5657 else :
@@ -86,7 +87,8 @@ def build_url(self, options: dict) -> str:
8687 result_url_dict ["path" ] = parsed_url .path
8788 src_param_used_for_url = True
8889 query_params = options .get ("query_parameters" , {})
89- transformation_str = self .transformation_to_str (options .get ("transformation" ))
90+ transformation_str = self .transformation_to_str (
91+ options .get ("transformation" ))
9092 if transformation_str :
9193 if (
9294 transformation_position == Default .QUERY_TRANSFORMATION_POSITION .value
@@ -114,7 +116,8 @@ def build_url(self, options: dict) -> str:
114116 expiry_timestamp = self .get_signature_timestamp (expire_seconds )
115117
116118 # Temporary variable to generate the URL signature
117- modified_result_url_dict = self .prepare_dict_for_unparse (result_url_dict )
119+ modified_result_url_dict = self .prepare_dict_for_unparse (
120+ result_url_dict )
118121 intermediate_url = urlunparse (
119122 modified_result_url_dict .get (f , "" ) for f in ParseResult ._fields
120123 )
@@ -139,6 +142,7 @@ def build_url(self, options: dict) -> str:
139142 generated_url = urlunparse (
140143 result_url_dict .get (f , "" ) for f in ParseResult ._fields
141144 )
145+
142146 if result_url_dict ["query" ]:
143147 generated_url = (
144148 generated_url + "&ik-sdk-version=" + Default .SDK_VERSION .value
@@ -147,6 +151,16 @@ def build_url(self, options: dict) -> str:
147151 generated_url = (
148152 generated_url + "?ik-sdk-version=" + Default .SDK_VERSION .value
149153 )
154+
155+ extra_query_parameters = options .get ("query_parameters" )
156+ if extra_query_parameters is not None :
157+ extra_query_parameters_str = "&" .join (
158+ str (k ) + "=" + str (v ) for k , v in extra_query_parameters .items ()
159+ )
160+ generated_url = (
161+ generated_url + "&" + extra_query_parameters_str
162+ )
163+
150164 return generated_url
151165
152166 @staticmethod
@@ -188,7 +202,7 @@ def get_signature(private_key, url, url_endpoint, expiry_timestamp) -> str:
188202 expiry_timestamp = DEFAULT_TIMESTAMP
189203
190204 replaced_url = url .replace (url_endpoint , "" ) + str (expiry_timestamp )
191-
205+
192206 signature = hmac .new (
193207 key = private_key .encode (), msg = replaced_url .encode (), digestmod = hashlib .sha1
194208 )
@@ -243,6 +257,7 @@ def transformation_to_str(transformation):
243257 )
244258 )
245259
246- parsed_transforms .append (TRANSFORM_DELIMITER .join (parsed_transform_step ))
260+ parsed_transforms .append (
261+ TRANSFORM_DELIMITER .join (parsed_transform_step ))
247262
248263 return CHAIN_TRANSFORM_DELIMITER .join (parsed_transforms )
0 commit comments