Skip to content

Commit adbd3b9

Browse files
committed
Handle bytes URLs in get_netrc_auth
1 parent fb56915 commit adbd3b9

3 files changed

Lines changed: 10 additions & 7 deletions

File tree

src/requests/models.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ class Request(RequestHooksMixin):
316316
"""
317317

318318
method: str | None
319-
url: str | None
319+
url: UriType | None
320320
headers: CaseInsensitiveDict[str] | Mapping[str, str | bytes] | None
321321
files: FilesType
322322
data: DataType
@@ -350,7 +350,7 @@ def __init__(
350350
self.register_hook(event=k, hook=v)
351351

352352
self.method = method
353-
self.url = url.decode("utf-8") if isinstance(url, bytes) else url
353+
self.url = url
354354
self.headers = headers
355355
self.files = files
356356
self.data = data
@@ -441,7 +441,7 @@ def prepare(
441441
) -> None:
442442
"""Prepares the entire request with the given parameters."""
443443

444-
url = cast(str, url)
444+
url = cast("UriType", url)
445445
self.prepare_method(method)
446446
self.prepare_url(url, params)
447447
self.prepare_headers(headers)
@@ -675,7 +675,7 @@ def prepare_content_length(self, body: BodyType) -> None:
675675
def prepare_auth(
676676
self,
677677
auth: AuthType,
678-
url: str = "",
678+
url: UriType = "",
679679
) -> None:
680680
"""Prepares the given HTTP auth data."""
681681

src/requests/sessions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,7 @@ def prepare_request(self, request: Request) -> PreparedRequest:
531531
session's settings.
532532
:rtype: requests.PreparedRequest
533533
"""
534-
url = cast(str, request.url)
534+
url = cast("UriType", request.url)
535535
method = cast(str, request.method)
536536

537537
cookies = request.cookies or {}

src/requests/utils.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
from http.cookiejar import CookieJar
7373
from io import BufferedWriter
7474

75-
from ._types import SupportsItems
75+
from ._types import SupportsItems, UriType
7676
from .models import PreparedRequest, Request, Response
7777

7878
NETRC_FILES: Final = (".netrc", "_netrc")
@@ -228,9 +228,12 @@ def super_len(o: Any) -> int:
228228
return max(0, total_length - current_position)
229229

230230

231-
def get_netrc_auth(url: str, raise_errors: bool = False) -> tuple[str, str] | None:
231+
def get_netrc_auth(url: UriType, raise_errors: bool = False) -> tuple[str, str] | None:
232232
"""Returns the Requests tuple auth for a given url from netrc."""
233233

234+
if isinstance(url, bytes):
235+
url = url.decode("utf-8")
236+
234237
netrc_file = os.environ.get("NETRC")
235238
if netrc_file is not None:
236239
netrc_locations = (netrc_file,)

0 commit comments

Comments
 (0)