Skip to content

Commit 93b0cb8

Browse files
refactor: combine duplicate code to http_client._prepare_request
1 parent 00d6caa commit 93b0cb8

1 file changed

Lines changed: 33 additions & 35 deletions

File tree

deepl/http_client.py

Lines changed: 33 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -106,24 +106,9 @@ def request_with_backoff(
106106
107107
Return and exceptions are the same as function request()."""
108108
backoff = _BackoffTimer()
109-
110-
try:
111-
headers.setdefault(
112-
"User-Agent",
113-
_generate_user_agent(
114-
user_agent,
115-
self._send_platform_info,
116-
self._app_info_name,
117-
self._app_info_version,
118-
),
119-
)
120-
request = requests.Request(
121-
method, url, data=data, json=json, headers=headers, **kwargs
122-
).prepare()
123-
except Exception as e:
124-
raise DeepLException(
125-
f"Error occurred while preparing request: {e}"
126-
) from e
109+
request = self._prepare_request(
110+
method, url, data, json, headers, **kwargs
111+
)
127112

128113
while True:
129114
response: Optional[Tuple[int, Union[str, requests.Response]]]
@@ -173,23 +158,9 @@ def request(
173158
174159
If no response is received will raise ConnectionException."""
175160

176-
try:
177-
headers.setdefault(
178-
"User-Agent",
179-
_generate_user_agent(
180-
user_agent,
181-
self._send_platform_info,
182-
self._app_info_name,
183-
self._app_info_version,
184-
),
185-
)
186-
request = requests.Request(
187-
method, url, data=data, json=json, headers=headers, **kwargs
188-
).prepare()
189-
except Exception as e:
190-
raise DeepLException(
191-
f"Error occurred while preparing request: {e}"
192-
) from e
161+
request = self._prepare_request(
162+
method, url, data, json, headers, **kwargs
163+
)
193164
return self._internal_request(request, stream, stream=stream)
194165

195166
def _internal_request(
@@ -238,6 +209,33 @@ def _should_retry(self, response, exception, num_retries):
238209
status_code >= http.HTTPStatus.INTERNAL_SERVER_ERROR
239210
)
240211

212+
def _prepare_request(
213+
self,
214+
method: str,
215+
url: str,
216+
data: Optional[dict],
217+
json: Optional[dict],
218+
headers: dict,
219+
**kwargs,
220+
) -> requests.PreparedRequest:
221+
try:
222+
headers.setdefault(
223+
"User-Agent",
224+
_generate_user_agent(
225+
user_agent,
226+
self._send_platform_info,
227+
self._app_info_name,
228+
self._app_info_version,
229+
),
230+
)
231+
return requests.Request(
232+
method, url, data=data, json=json, headers=headers, **kwargs
233+
).prepare()
234+
except Exception as e:
235+
raise DeepLException(
236+
f"Error occurred while preparing request: {e}"
237+
) from e
238+
241239

242240
@lru_cache(maxsize=4)
243241
def _generate_user_agent(

0 commit comments

Comments
 (0)