Skip to content

Commit 17378ee

Browse files
committed
fix: urllib3.BaseResponse not supported in < v2
1 parent e07ce96 commit 17378ee

File tree

3 files changed

+18
-15
lines changed

3 files changed

+18
-15
lines changed

.github/workflows/main.yaml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jobs:
1818
fail-fast: false
1919
matrix:
2020
python-version: ["3.10", "3.11", "3.12"]
21+
urllib3-version: ["1.26.19", "2.2.2"]
2122

2223
steps:
2324
- name: Checkout code
@@ -36,16 +37,18 @@ jobs:
3637
**/test-requirements*.txt
3738
3839
- name: Install dependencies
39-
run: pip install -r test-requirements.txt --upgrade pip
40+
run: |
41+
pip install -r test-requirements.txt --upgrade pip
42+
pip install "urllib3==${{ matrix.urllib3-version }}"
4043
41-
- if: matrix.python-version == '3.10'
44+
- if: matrix.python-version == '3.10' && matrix.urllib3-version == '1.26.19'
4245
name: Run `ruff`
4346
run: ruff check
4447

4548
- name: Run tests and collect coverage
4649
run: pytest --cov-fail-under 60 --cov openfga_sdk
4750

48-
- if: matrix.python-version == '3.10'
51+
- if: matrix.python-version == '3.10' && matrix.urllib3-version == '1.26.19'
4952
name: Upload coverage to Codecov
5053
uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0
5154
continue-on-error: true

openfga_sdk/sync/rest.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,22 +41,22 @@ class RESTResponse(io.IOBase):
4141
Represents an HTTP response object in the synchronous client.
4242
"""
4343

44-
_response: urllib3.BaseHTTPResponse
44+
_response: urllib3.HTTPResponse
4545
_data: bytes
4646
_status: int
4747
_reason: str | None
4848

4949
def __init__(
5050
self,
51-
response: urllib3.BaseHTTPResponse,
51+
response: urllib3.HTTPResponse,
5252
data: bytes,
5353
status: int | None = None,
5454
reason: str | None = None,
5555
) -> None:
5656
"""
57-
Initializes a RESTResponse with a urllib3.BaseHTTPResponse and corresponding data.
57+
Initializes a RESTResponse with a urllib3.HTTPResponse and corresponding data.
5858
59-
:param resp: The urllib3.BaseHTTPResponse object.
59+
:param resp: The urllib3.HTTPResponse object.
6060
:param data: The raw byte data read from the response.
6161
"""
6262
self._response = response
@@ -65,16 +65,16 @@ def __init__(
6565
self._reason = reason or response.reason
6666

6767
@property
68-
def response(self) -> urllib3.BaseHTTPResponse:
68+
def response(self) -> urllib3.HTTPResponse:
6969
"""
70-
Returns the underlying urllib3.BaseHTTPResponse object.
70+
Returns the underlying urllib3.HTTPResponse object.
7171
"""
7272
return self._response
7373

7474
@response.setter
75-
def response(self, value: urllib3.BaseHTTPResponse) -> None:
75+
def response(self, value: urllib3.HTTPResponse) -> None:
7676
"""
77-
Sets the underlying urllib3.BaseHTTPResponse object.
77+
Sets the underlying urllib3.HTTPResponse object.
7878
"""
7979
self._response = value
8080

@@ -318,7 +318,7 @@ def build_request(
318318
return args
319319

320320
def handle_response_exception(
321-
self, response: RESTResponse | urllib3.BaseHTTPResponse
321+
self, response: RESTResponse | urllib3.HTTPResponse
322322
) -> None:
323323
"""
324324
Raises exceptions if response status indicates an error.
@@ -462,7 +462,7 @@ def request(
462462
post_params: dict | None = None,
463463
_preload_content: bool = True,
464464
_request_timeout: float | tuple | None = None,
465-
) -> RESTResponse | urllib3.BaseHTTPResponse:
465+
) -> RESTResponse | urllib3.HTTPResponse:
466466
"""
467467
Executes a request and returns the response object.
468468
@@ -493,7 +493,7 @@ def request(
493493

494494
# Send request, collect response handler
495495
wrapped_response: RESTResponse | None = None
496-
raw_response: urllib3.BaseHTTPResponse = self.pool_manager.request(**args)
496+
raw_response: urllib3.HTTPResponse = self.pool_manager.request(**args)
497497

498498
# If we want to preload the response, read it
499499
if _preload_content:

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ aiohttp >= 3.9.3, < 4
22
python-dateutil >= 2.9.0, < 3
33
setuptools >= 69.1.1
44
build >= 1.2.1, < 2
5-
urllib3 >= 1.25.11, < 3
5+
urllib3 >= 1.26.19, >= 2.2.2
66
opentelemetry-api >= 1.25.0, < 2

0 commit comments

Comments
 (0)