Skip to content

Commit be5b5b2

Browse files
author
Saurav Tiwary
committed
Move global variables from url.py to defaults
Signed-off-by: Saurav Tiwary <[email protected]>
1 parent a7a3e07 commit be5b5b2

File tree

4 files changed

+22
-23
lines changed

4 files changed

+22
-23
lines changed

imagekitio/constants/defaults.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,11 @@ class Default(enum.Enum):
99
QUERY_TRANSFORMATION_POSITION,
1010
]
1111
DEFAULT_TIMESTAMP = 9999999999
12+
SDK_VERSION_PARAMETER = "ik-sdk-version"
1213
SDK_VERSION = "python-2.2.4"
14+
TRANSFORMATION_PARAMETER = "tr"
15+
CHAIN_TRANSFORM_DELIMITER = ":"
16+
TRANSFORM_DELIMITER = ","
17+
TRANSFORM_KEY_VALUE_DELIMITER = "-"
18+
SIGNATURE_PARAMETER = "ik-s"
19+
TIMESTAMP_PARAMETER = "ik-t"

imagekitio/url.py

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,6 @@
1111

1212
from .constants import ERRORS
1313

14-
TRANSFORMATION_PARAMETER = "tr"
15-
DEFAULT_TRANSFORMATION_POSITION = "path"
16-
QUERY_TRANSFORMATION_POSITION = "query"
17-
CHAIN_TRANSFORM_DELIMITER = ":"
18-
TRANSFORM_DELIMITER = ","
19-
TRANSFORM_KEY_VALUE_DELIMITER = "-"
20-
21-
SIGNATURE_PARAMETER = "ik-s"
22-
TIMESTAMP_PARAMETER = "ik-t"
23-
2414

2515
class Url:
2616
"""
@@ -46,7 +36,7 @@ def build_url(self, options: dict) -> str:
4636
src = options.get("src", "").strip("/")
4737
url_endpoint = options.get("url_endpoint", "").strip("/")
4838
transformation_str = self.transformation_to_str(options.get("transformation"))
49-
transformation_position = options.get("transformation_position", DEFAULT_TRANSFORMATION_POSITION)
39+
transformation_position = options.get("transformation_position", Default.DEFAULT_TRANSFORMATION_POSITION.value)
5040

5141
if transformation_position not in Default.VALID_TRANSFORMATION_POSITION.value:
5242
raise ValueError(ERRORS.INVALID_TRANSFORMATION_POSITION.value)
@@ -59,7 +49,7 @@ def build_url(self, options: dict) -> str:
5949
if transformation_position == "path":
6050
temp_url = "{}/{}:{}/{}".format(
6151
url_endpoint,
62-
TRANSFORMATION_PARAMETER,
52+
Default.TRANSFORMATION_PARAMETER.value,
6353
transformation_str.strip("/"),
6454
path
6555
)
@@ -71,15 +61,15 @@ def build_url(self, options: dict) -> str:
7161
else:
7262
temp_url = src
7363
# if src parameter is used, then we force transformation position in query
74-
transformation_position = QUERY_TRANSFORMATION_POSITION
64+
transformation_position = Default.QUERY_TRANSFORMATION_POSITION.value
7565

7666
url_object = urlparse(temp_url)
7767

7868
query_params = dict(parse_qsl(url_object.query))
7969
query_params.update(options.get("query_parameters", {}))
80-
if transformation_position == QUERY_TRANSFORMATION_POSITION:
81-
query_params.update({"tr": transformation_str})
82-
query_params.update({"ik-sdk-version": Default.SDK_VERSION.value})
70+
if transformation_position == Default.QUERY_TRANSFORMATION_POSITION.value:
71+
query_params.update({Default.TRANSFORMATION_PARAMETER.value: transformation_str})
72+
query_params.update({Default.SDK_VERSION_PARAMETER.value: Default.SDK_VERSION.value})
8373

8474
# Update query params in the url
8575
url_object = url_object._replace(query=urlencode(query_params))
@@ -103,9 +93,9 @@ def build_url(self, options: dict) -> str:
10393
If not present, then no ik-t parameter and the value 9999999999 is used.
10494
"""
10595
if expire_seconds:
106-
query_params.update({TIMESTAMP_PARAMETER: expiry_timestamp, SIGNATURE_PARAMETER: url_signature})
96+
query_params.update({Default.TIMESTAMP_PARAMETER.value: expiry_timestamp, Default.SIGNATURE_PARAMETER.value: url_signature})
10797
else:
108-
query_params.update({SIGNATURE_PARAMETER: url_signature})
98+
query_params.update({Default.SIGNATURE_PARAMETER.value: url_signature})
10999

110100
# Update signature related query params
111101
url_object = url_object._replace(query=urlencode(query_params))
@@ -191,12 +181,12 @@ def transformation_to_str(transformation):
191181
parsed_transform_step.append(
192182
"{}{}{}".format(
193183
transform_key,
194-
TRANSFORM_KEY_VALUE_DELIMITER,
184+
Default.TRANSFORM_KEY_VALUE_DELIMITER.value,
195185
transformation[i][key],
196186
)
197187
)
198188

199189
parsed_transforms.append(
200-
TRANSFORM_DELIMITER.join(parsed_transform_step))
190+
Default.TRANSFORM_DELIMITER.value.join(parsed_transform_step))
201191

202-
return CHAIN_TRANSFORM_DELIMITER.join(parsed_transforms)
192+
return Default.CHAIN_TRANSFORM_DELIMITER.value.join(parsed_transforms)

imagekitio/utils/formatter.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ def request_formatter(data: dict) -> dict:
3131

3232

3333
def camel_dict_to_snake_dict(data: dict) -> dict:
34+
"""Convert the keys of dictionary from camel case to snake case
35+
"""
3436
return {camel_to_snake(key): val for key, val in data.items()}
3537

3638

tests/test_generate_url.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ def test_generate_url_with_path_and_signed_in_proper_form(self):
192192
}
193193

194194
url = self.client.url(options)
195-
self.assertIn("ik-s", url)
195+
self.assertIn(Default.SIGNATURE_PARAMETER.value, url)
196196

197197
def test_generate_url_signed_without_expiry_does_not_have_timestamp_parameter(self):
198198
"""
@@ -205,7 +205,7 @@ def test_generate_url_signed_without_expiry_does_not_have_timestamp_parameter(se
205205
}
206206

207207
url = self.client.url(options)
208-
self.assertNotIn("ik-t", url)
208+
self.assertNotIn(Default.TIMESTAMP_PARAMETER.value, url)
209209

210210
def test_url_with_new_transformation_returns_as_it_is(self):
211211
options = {

0 commit comments

Comments
 (0)