Skip to content

Commit 1f913c8

Browse files
FIX: fix issue #35,#37,#41,#44
1 parent 154806b commit 1f913c8

File tree

6 files changed

+14
-8
lines changed

6 files changed

+14
-8
lines changed

imagekitio/file.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
from .models.results.ResponseMetadataResult import ResponseMetadataResult
5050
from .models.results.TagsResult import TagsResult
5151
from .models.results.UploadFileResult import UploadFileResult
52+
import base64
53+
import io
5254
from .utils.formatter import (
5355
request_formatter,
5456
snake_to_lower_camel,
@@ -93,7 +95,9 @@ def upload(
9395
options = self.validate_upload(options.__dict__)
9496
if options is False:
9597
raise ValueError("Invalid upload options")
96-
if isinstance(file, str) or isinstance(file, bytes):
98+
if isinstance(file,io.BufferedReader):
99+
files.update({"file": (None, base64.b64encode(file.read()))})
100+
elif isinstance(file, str) or isinstance(file, bytes):
97101
files.update({"file": (None, file)})
98102
if "overwriteAiTags" in options:
99103
options["overwriteAITags"] = options["overwriteAiTags"]
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
class EmbeddedMetadata:
2-
def __init__(self, x_resolution=None, y_resolution=None, date_created=None, date_timecreated=None):
2+
def __init__(self, x_resolution=None, y_resolution=None, date_created=None, date_time_created=None):
33
self.x_resolution = x_resolution
44
self.y_resolution = y_resolution
55
self.date_created = date_created
6-
self.date_timecreated = date_timecreated
6+
self.date_time_created = date_time_created

imagekitio/models/results/UploadFileResult.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def __init__(
5757
embedded_metadata["x_resolution"],
5858
embedded_metadata["y_resolution"],
5959
embedded_metadata["date_created"],
60-
embedded_metadata["date_timecreated"],
60+
embedded_metadata["date_time_created"],
6161
)
6262
self.extension_status = extension_status
6363
self.file_type = file_type

imagekitio/url.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ def __init__(self, request_obj):
2323

2424
def generate_url(self, options: Dict = None) -> str:
2525
options = camel_dict_to_snake_dict(options)
26+
if "query_parameters" in options.keys() and "ik-attachment" in options["query_parameters"].keys():
27+
options["query_parameters"]["ik-attachment"] = str(options["query_parameters"]["ik-attachment"]).lower()
2628
extended_options = self.request.extend_url_options(options)
2729
return self.build_url(extended_options)
2830

@@ -192,8 +194,8 @@ def transformation_to_str(transformation):
192194
value = value.strip("/")
193195
value = value.replace("/", "@@")
194196
if transform_key == "raw":
195-
for i in value.split(","):
196-
parsed_transform_step.append(i)
197+
for j in value.split(","):
198+
parsed_transform_step.append(j)
197199
else:
198200
parsed_transform_step.append(
199201
"{}{}{}".format(

imagekitio/utils/formatter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def request_formatter(data: dict) -> dict:
3232

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

3737

3838
def flatten_dict(dict_list: List[Dict]) -> OrderedDict:

requirements/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
requests>=2.22.0
2-
requests_toolbelt==0.9.1
2+
requests_toolbelt==0.10.1

0 commit comments

Comments
 (0)