Skip to content

Commit f6a28a1

Browse files
Updating translate to match js to use single translate method based on params passed in contrast to file type in js.
1 parent 67e73e6 commit f6a28a1

File tree

1 file changed

+44
-17
lines changed

1 file changed

+44
-17
lines changed

jigsawstack/translate.py

Lines changed: 44 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -82,24 +82,37 @@ def __init__(
8282
disable_request_logging=disable_request_logging,
8383
)
8484

85-
def translate(
86-
self, params: Union[TranslateParams, TranslateImageParams]
87-
) -> Union[TranslateResponse, TranslateListResponse, TranslateImageResponse]:
88-
if "url" in params or "file_store_key" in params:
89-
path = "/ai/translate/image"
90-
else:
91-
path = "/ai/translate"
85+
def translate_text(
86+
self, params: TranslateParams
87+
) -> Union[TranslateResponse, TranslateListResponse]:
9288
resp = Request(
9389
config=self.config,
94-
path=path,
90+
path="/ai/translate",
9591
params=cast(Dict[Any, Any], params),
9692
verb="post",
9793
).perform()
9894
return resp
9995

96+
def translate_image(
97+
self, params: TranslateImageParams
98+
) -> TranslateImageResponse:
99+
resp = Request(
100+
config=self.config,
101+
path="/ai/translate/image",
102+
params=cast(Dict[Any, Any], params),
103+
verb="post",
104+
).perform()
105+
return resp
106+
107+
def translate(
108+
self, params: Union[TranslateParams, TranslateImageParams]
109+
) -> Union[TranslateResponse, TranslateListResponse, TranslateImageResponse]:
110+
if "url" in params or "file_store_key" in params:
111+
return self.translate_image(params)
112+
return self.translate_text(params)
100113

101-
class AsyncTranslate(ClientConfig):
102114

115+
class AsyncTranslate(ClientConfig):
103116
config: RequestConfig
104117

105118
def __init__(
@@ -115,17 +128,31 @@ def __init__(
115128
disable_request_logging=disable_request_logging,
116129
)
117130

118-
async def translate(
119-
self, params: Union[TranslateParams, TranslateImageParams]
120-
) -> Union[TranslateResponse, TranslateListResponse, TranslateImageParams]:
121-
if "url" in params or "file_store_key" in params:
122-
path = "/ai/translate/image"
123-
else:
124-
path = "/ai/translate"
131+
async def translate_text(
132+
self, params: TranslateParams
133+
) -> Union[TranslateResponse, TranslateListResponse]:
125134
resp = await AsyncRequest(
126135
config=self.config,
127-
path=path,
136+
path="/ai/translate",
128137
params=cast(Dict[Any, Any], params),
129138
verb="post",
130139
).perform()
131140
return resp
141+
142+
async def translate_image(
143+
self, params: TranslateImageParams
144+
) -> TranslateImageResponse:
145+
resp = await AsyncRequest(
146+
config=self.config,
147+
path="/ai/translate/image",
148+
params=cast(Dict[Any, Any], params),
149+
verb="post",
150+
).perform()
151+
return resp
152+
153+
async def translate(
154+
self, params: Union[TranslateParams, TranslateImageParams]
155+
) -> Union[TranslateResponse, TranslateListResponse, TranslateImageResponse]:
156+
if "url" in params or "file_store_key" in params:
157+
return self.translate_image(params)
158+
return await self.translate_text(params)

0 commit comments

Comments
 (0)