Skip to content

Commit ccb13ed

Browse files
author
Liora Milbaum
committed
refactor: RequestsResponse
1 parent c7cf0d1 commit ccb13ed

File tree

3 files changed

+31
-5
lines changed

3 files changed

+31
-5
lines changed

gitlab/client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -774,10 +774,10 @@ def http_request(
774774

775775
raise
776776

777-
self._check_redirects(result)
777+
self._check_redirects(result.response)
778778

779779
if 200 <= result.status_code < 300:
780-
return result
780+
return result.response
781781

782782
if (429 == result.status_code and obey_rate_limit) or (
783783
result.status_code in gitlab.const.RETRYABLE_TRANSIENT_ERROR_CODES

gitlab/http_backends/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
Defines http backends for processing http requests
33
"""
44

5-
from .requests_backend import RequestsBackend
5+
from .requests_backend import RequestsBackend, RequestsResponse
66

77
DefaultBackend = RequestsBackend
8+
DefaultResponse = RequestsResponse

gitlab/http_backends/requests_backend.py

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,30 @@
44
from requests_toolbelt.multipart.encoder import MultipartEncoder # type: ignore
55

66

7+
class RequestsResponse:
8+
def __init__(self, response: requests.Response) -> None:
9+
self._response: requests.Response = response
10+
11+
@property
12+
def response(self) -> requests.Response:
13+
return self._response
14+
15+
@property
16+
def status_code(self) -> int:
17+
return self._response.status_code
18+
19+
@property
20+
def headers(self) -> Any:
21+
return self._response.headers
22+
23+
@property
24+
def content(self) -> bytes:
25+
return self._response.content
26+
27+
def json(self) -> Any:
28+
return self._response.json()
29+
30+
731
class RequestsBackend:
832
def __init__(self, session: Optional[requests.Session] = None) -> None:
933
self._client: requests.Session = session or requests.Session()
@@ -23,7 +47,7 @@ def http_request(
2347
verify: Optional[Union[bool, str]] = True,
2448
stream: Optional[bool] = False,
2549
**kwargs: Any
26-
) -> requests.Response:
50+
) -> RequestsResponse:
2751
"""Make HTTP request
2852
2953
Args:
@@ -40,7 +64,7 @@ def http_request(
4064
Returns:
4165
A requests Response object.
4266
"""
43-
return self._client.request(
67+
response: requests.Response = self._client.request(
4468
method=method,
4569
url=url,
4670
params=params,
@@ -51,3 +75,4 @@ def http_request(
5175
json=json,
5276
**kwargs
5377
)
78+
return RequestsResponse(response=response)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy