Skip to content

Commit c1eb547

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

File tree

3 files changed

+32
-5
lines changed

3 files changed

+32
-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: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,34 @@
11
from typing import Any, Dict, Optional, Union
22

33
import requests
4+
from requests.structures import CaseInsensitiveDict
45
from requests_toolbelt.multipart.encoder import MultipartEncoder # type: ignore
56

67

8+
class RequestsResponse:
9+
def __init__(self, response: requests.Response) -> None:
10+
self._response: requests.Response = response
11+
12+
@property
13+
def response(self) -> requests.Response:
14+
return self._response
15+
16+
@property
17+
def status_code(self) -> int:
18+
return self._response.status_code
19+
20+
@property
21+
def headers(self) -> CaseInsensitiveDict[str]:
22+
return self._response.headers
23+
24+
@property
25+
def content(self) -> bytes:
26+
return self._response.content
27+
28+
def json(self) -> Any:
29+
return self._response.json()
30+
31+
732
class RequestsBackend:
833
def __init__(self, session: Optional[requests.Session] = None) -> None:
934
self._client: requests.Session = session or requests.Session()
@@ -23,7 +48,7 @@ def http_request(
2348
verify: Optional[Union[bool, str]] = True,
2449
stream: Optional[bool] = False,
2550
**kwargs: Any
26-
) -> requests.Response:
51+
) -> RequestsResponse:
2752
"""Make HTTP request
2853
2954
Args:
@@ -40,7 +65,7 @@ def http_request(
4065
Returns:
4166
A requests Response object.
4267
"""
43-
return self._client.request(
68+
response: requests.Response = self._client.request(
4469
method=method,
4570
url=url,
4671
params=params,
@@ -51,3 +76,4 @@ def http_request(
5176
json=json,
5277
**kwargs
5378
)
79+
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