Skip to content

Commit 09384b5

Browse files
committed
ENH: implementation of 'send_request'
1 parent de31d4d commit 09384b5

File tree

3 files changed

+60
-29
lines changed

3 files changed

+60
-29
lines changed

src/save_and_restore_api/_api_async.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,24 @@ def open(self):
1010
async def close(self):
1111
await self._client.aclose()
1212
self._client = None
13+
14+
async def send_request(
15+
self, method, url, *, params=None, url_params=None, headers=None, data=None, timeout=None, auth=None
16+
):
17+
try:
18+
client_response = None
19+
kwargs = self._prepare_request(
20+
method=method,
21+
params=params,
22+
url_params=url_params,
23+
headers=headers,
24+
data=data,
25+
timeout=timeout,
26+
auth=auth,
27+
)
28+
client_response = await self._client.request(method, url, **kwargs)
29+
response = self._process_response(client_response=client_response)
30+
except Exception:
31+
response = self._process_comm_exception(method=method, params=params, client_response=client_response)
32+
33+
return response

src/save_and_restore_api/_api_base.py

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,6 @@ def gen_auth(username, password):
5959
def set_auth(self, *, username, password):
6060
self._auth = self.gen_auth(username=username, password=password)
6161

62-
def open(self): ...
63-
64-
def close(self): ...
65-
6662
def set_username_password(self, username=None, password=None):
6763
if not isinstance(username, str):
6864
print("Username: ", end="")
@@ -121,32 +117,25 @@ def _process_comm_exception(self, *, method, params, client_response):
121117
else:
122118
raise self.HTTPServerError(exc, **common_params) from exc
123119

124-
def send_request(
125-
self, method, url, *, params=None, url_params=None, headers=None, data=None, timeout=None, auth=None
120+
def _prepare_request(
121+
self, *, method, params=None, url_params=None, headers=None, data=None, timeout=None, auth=None
126122
):
127-
try:
128-
client_response = None
129-
kwargs = {}
130-
if params:
131-
kwargs.update({"json": params})
132-
if url_params:
133-
kwargs.update({"params": url_params})
134-
if headers:
135-
kwargs.update({"headers": headers})
136-
if data:
137-
kwargs.update({"data": data})
138-
if timeout is not None:
139-
kwargs.update({"timeout": self._adjust_timeout(timeout)})
140-
if method != "GET":
141-
auth = auth or self._auth
142-
if auth is not None:
143-
kwargs.update({"auth": auth})
144-
client_response = self._client.request(method, url, **kwargs)
145-
response = self._process_response(client_response=client_response)
146-
except Exception:
147-
response = self._process_comm_exception(method=method, params=params, client_response=client_response)
148-
149-
return response
123+
kwargs = {}
124+
if params:
125+
kwargs.update({"json": params})
126+
if url_params:
127+
kwargs.update({"params": url_params})
128+
if headers:
129+
kwargs.update({"headers": headers})
130+
if data:
131+
kwargs.update({"data": data})
132+
if timeout is not None:
133+
kwargs.update({"timeout": self._adjust_timeout(timeout)})
134+
if method != "GET":
135+
auth = auth or self._auth
136+
if auth is not None:
137+
kwargs.update({"auth": auth})
138+
return kwargs
150139

151140
def login(self, *, username=None, password=None):
152141
params = {"username": self._username, "password": self._password}

src/save_and_restore_api/_api_threads.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,24 @@ def open(self):
1010
def close(self):
1111
self._client.close()
1212
self._client = None
13+
14+
def send_request(
15+
self, method, url, *, params=None, url_params=None, headers=None, data=None, timeout=None, auth=None
16+
):
17+
try:
18+
client_response = None
19+
kwargs = self._prepare_request(
20+
method=method,
21+
params=params,
22+
url_params=url_params,
23+
headers=headers,
24+
data=data,
25+
timeout=timeout,
26+
auth=auth,
27+
)
28+
client_response = self._client.request(method, url, **kwargs)
29+
response = self._process_response(client_response=client_response)
30+
except Exception:
31+
response = self._process_comm_exception(method=method, params=params, client_response=client_response)
32+
33+
return response

0 commit comments

Comments
 (0)