Skip to content

Commit 315d2f4

Browse files
committed
feat: implement file upload with rest client
1 parent 9932123 commit 315d2f4

File tree

6 files changed

+516
-395
lines changed

6 files changed

+516
-395
lines changed

taskingai/__init__.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from . import tool
44
from . import retrieval
55
from . import inference
6+
from . import file
67
from ._version import __version__
78

89
__all__ = [
@@ -11,4 +12,4 @@
1112
"retrieval",
1213
"inference",
1314
"__version__",
14-
]
15+
]

taskingai/client/api_client.py

+10-35
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import datetime
1010
import json
11-
import mimetypes
1211
import os
1312
import re
1413
import tempfile
@@ -101,32 +100,6 @@ def deserialize(self, response, response_type: Type[BaseModel]):
101100

102101
return response_type(**data)
103102

104-
def prepare_post_parameters(self, post_params=None, files=None):
105-
"""Builds form parameters.
106-
107-
:param post_params: Normal form parameters.
108-
:param files: File parameters.
109-
:return: Form parameters with files.
110-
"""
111-
params = []
112-
113-
if post_params:
114-
params = post_params
115-
116-
if files:
117-
for k, v in six.iteritems(files):
118-
if not v:
119-
continue
120-
file_names = v if type(v) is list else [v]
121-
for n in file_names:
122-
with open(n, "rb") as f:
123-
filename = os.path.basename(f.name)
124-
filedata = f.read()
125-
mimetype = mimetypes.guess_type(filename)[0] or "application/octet-stream"
126-
params.append(tuple([k, tuple([filename, filedata, mimetype])]))
127-
128-
return params
129-
130103
def select_header_accept(self, accepts):
131104
"""Returns `Accept` based on an array of accepts provided.
132105
@@ -252,10 +225,6 @@ def __call_api(
252225
# specified safe chars, encode everything
253226
resource_path = resource_path.replace("{%s}" % k, quote(str(v), safe=config.safe_chars_for_path_param))
254227

255-
# post parameters
256-
if post_params or files:
257-
post_params = self.prepare_post_parameters(post_params, files)
258-
259228
# auth setting
260229
self.update_params_for_auth(header_params, query_params, auth_settings)
261230

@@ -272,6 +241,7 @@ def __call_api(
272241
query_params=query_params,
273242
headers=header_params,
274243
post_params=post_params,
244+
files=files,
275245
body=body,
276246
_preload_content=_preload_content,
277247
_request_timeout=_request_timeout,
@@ -367,6 +337,7 @@ def request(
367337
query_params=None,
368338
headers=None,
369339
post_params=None,
340+
files=None,
370341
body=None,
371342
_preload_content=True,
372343
_request_timeout=None,
@@ -408,6 +379,7 @@ def request(
408379
query_params=query_params,
409380
headers=headers,
410381
post_params=post_params,
382+
files=files,
411383
_preload_content=_preload_content,
412384
_request_timeout=_request_timeout,
413385
body=body,
@@ -419,6 +391,7 @@ def request(
419391
query_params=query_params,
420392
headers=headers,
421393
post_params=post_params,
394+
files=files,
422395
_preload_content=_preload_content,
423396
_request_timeout=_request_timeout,
424397
body=body,
@@ -430,6 +403,7 @@ def request(
430403
query_params=query_params,
431404
headers=headers,
432405
post_params=post_params,
406+
files=files,
433407
_preload_content=_preload_content,
434408
_request_timeout=_request_timeout,
435409
body=body,
@@ -489,10 +463,6 @@ async def __call_api(
489463
# specified safe chars, encode everything
490464
resource_path = resource_path.replace("{%s}" % k, quote(str(v), safe=config.safe_chars_for_path_param))
491465

492-
# post parameters
493-
if post_params or files:
494-
post_params = self.prepare_post_parameters(post_params, files)
495-
496466
# auth setting
497467
self.update_params_for_auth(header_params, query_params, auth_settings)
498468

@@ -509,6 +479,7 @@ async def __call_api(
509479
query_params=query_params,
510480
headers=header_params,
511481
post_params=post_params,
482+
files=files,
512483
body=body,
513484
_preload_content=_preload_content,
514485
_request_timeout=_request_timeout,
@@ -601,6 +572,7 @@ async def request(
601572
query_params=None,
602573
headers=None,
603574
post_params=None,
575+
files=None,
604576
body=None,
605577
_preload_content=True,
606578
_request_timeout=None,
@@ -642,6 +614,7 @@ async def request(
642614
query_params=query_params,
643615
headers=headers,
644616
post_params=post_params,
617+
files=files,
645618
_preload_content=_preload_content,
646619
_request_timeout=_request_timeout,
647620
body=body,
@@ -653,6 +626,7 @@ async def request(
653626
query_params=query_params,
654627
headers=headers,
655628
post_params=post_params,
629+
files=files,
656630
_preload_content=_preload_content,
657631
_request_timeout=_request_timeout,
658632
body=body,
@@ -664,6 +638,7 @@ async def request(
664638
query_params=query_params,
665639
headers=headers,
666640
post_params=post_params,
641+
files=files,
667642
_preload_content=_preload_content,
668643
_request_timeout=_request_timeout,
669644
body=body,

0 commit comments

Comments
 (0)