From 181810afa01ac31f9c8e593be1ff5581e01e50fa Mon Sep 17 00:00:00 2001 From: Milan Boers Date: Tue, 26 Apr 2022 13:01:14 +0200 Subject: [PATCH 01/10] Complete hints for requests.Session.send --- stubs/requests/requests/sessions.pyi | 86 ++++++++++++++++------------ 1 file changed, 49 insertions(+), 37 deletions(-) diff --git a/stubs/requests/requests/sessions.pyi b/stubs/requests/requests/sessions.pyi index f4247312c418..abed0d89172c 100644 --- a/stubs/requests/requests/sessions.pyi +++ b/stubs/requests/requests/sessions.pyi @@ -1,6 +1,6 @@ from _typeshed import Self, SupportsItems from collections.abc import Callable, Iterable, Mapping, MutableMapping -from typing import IO, Any, Union +from typing import IO, Any, Tuple, Union from typing_extensions import TypeAlias from urllib3._collections import RecentlyUsedContainer @@ -45,6 +45,7 @@ class SessionRedirectMixin: def rebuild_proxies(self, prepared_request, proxies): ... def should_strip_auth(self, old_url, new_url): ... +_Cert: TypeAlias = str | Tuple[str, str] _Data: TypeAlias = str | bytes | Mapping[str, Any] | Iterable[tuple[str, str | None]] | IO[Any] | None _Hook: TypeAlias = Callable[[Response], Any] @@ -60,6 +61,8 @@ _Params: TypeAlias = Union[ str | bytes, ] _TextMapping: TypeAlias = MutableMapping[str, str] +_Timeout: TypeAlias = float | Tuple[float, float] | Tuple[float, None] +_Verify: TypeAlias = bool | str class Session(SessionRedirectMixin): __attrs__: Any @@ -94,13 +97,13 @@ class Session(SessionRedirectMixin): | MutableMapping[str, tuple[str, IO[Any], str, _TextMapping]] | None = ..., auth: None | tuple[str, str] | _auth.AuthBase | Callable[[PreparedRequest], PreparedRequest] = ..., - timeout: None | float | tuple[float, float] | tuple[float, None] = ..., - allow_redirects: bool | None = ..., + timeout: _Timeout | None = ..., + allow_redirects: bool = ..., proxies: _TextMapping | None = ..., hooks: _HooksInput | None = ..., stream: bool | None = ..., - verify: None | bool | str = ..., - cert: str | tuple[str, str] | None = ..., + verify: _Verify | None = ..., + cert: _Cert | None = ..., json: Any | None = ..., ) -> Response: ... def get( @@ -112,13 +115,13 @@ class Session(SessionRedirectMixin): cookies: Any | None = ..., files: Any | None = ..., auth: Any | None = ..., - timeout: Any | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., + proxies: _TextMapping | None = ..., hooks: Any | None = ..., - stream: Any | None = ..., - verify: Any | None = ..., - cert: Any | None = ..., + stream: bool | None = ..., + verify: _Verify | None = ..., + cert: _Cert | None = ..., json: Any | None = ..., ) -> Response: ... def options( @@ -130,13 +133,13 @@ class Session(SessionRedirectMixin): cookies: Any | None = ..., files: Any | None = ..., auth: Any | None = ..., - timeout: Any | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., + proxies: _TextMapping | None = ..., hooks: Any | None = ..., stream: Any | None = ..., - verify: Any | None = ..., - cert: Any | None = ..., + verify: _Verify | None = ..., + cert: _Cert | None = ..., json: Any | None = ..., ) -> Response: ... def head( @@ -148,13 +151,13 @@ class Session(SessionRedirectMixin): cookies: Any | None = ..., files: Any | None = ..., auth: Any | None = ..., - timeout: Any | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., + proxies: _TextMapping | None = ..., hooks: Any | None = ..., - stream: Any | None = ..., - verify: Any | None = ..., - cert: Any | None = ..., + stream: bool | None = ..., + verify: _Verify | None = ..., + cert: _Cert | None = ..., json: Any | None = ..., ) -> Response: ... def post( @@ -167,13 +170,13 @@ class Session(SessionRedirectMixin): cookies: Any | None = ..., files: Any | None = ..., auth: Any | None = ..., - timeout: Any | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., + proxies: _TextMapping | None = ..., hooks: Any | None = ..., stream: Any | None = ..., - verify: Any | None = ..., - cert: Any | None = ..., + verify: _Verify | None = ..., + cert: _Cert | None = ..., ) -> Response: ... def put( self, @@ -184,12 +187,12 @@ class Session(SessionRedirectMixin): cookies: Any | None = ..., files: Any | None = ..., auth: Any | None = ..., - timeout: Any | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., + proxies: _TextMapping | None = ..., hooks: Any | None = ..., - stream: Any | None = ..., - verify: Any | None = ..., + stream: bool | None = ..., + verify: _Verify | None = ..., cert: Any | None = ..., json: Any | None = ..., ) -> Response: ... @@ -202,13 +205,13 @@ class Session(SessionRedirectMixin): cookies: Any | None = ..., files: Any | None = ..., auth: Any | None = ..., - timeout: Any | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., + proxies: _TextMapping | None = ..., hooks: Any | None = ..., - stream: Any | None = ..., - verify: Any | None = ..., - cert: Any | None = ..., + stream: bool | None = ..., + verify: _Verify | None = ..., + cert: _Cert | None = ..., json: Any | None = ..., ) -> Response: ... def delete( @@ -220,17 +223,26 @@ class Session(SessionRedirectMixin): cookies: Any | None = ..., files: Any | None = ..., auth: Any | None = ..., - timeout: Any | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., + proxies: _TextMapping | None = ..., hooks: Any | None = ..., - stream: Any | None = ..., - verify: Any | None = ..., + stream: bool | None = ..., + verify: _Verify | None = ..., cert: Any | None = ..., json: Any | None = ..., ) -> Response: ... def send( - self, request: PreparedRequest, *, stream=..., verify=..., cert=..., proxies=..., allow_redirects: bool = ..., **kwargs + self, + request: PreparedRequest, + *, + stream: bool | None = ..., + verify: _Verify | None = ..., + proxies: _TextMapping | None = ..., + cert: _Cert | None = ..., + timeout: _Timeout | None = ..., + allow_redirects: bool = ..., + **kwargs: Any, ) -> Response: ... def merge_environment_settings(self, url, proxies, stream, verify, cert): ... def get_adapter(self, url: str) -> _BaseAdapter: ... From fc944b7add3057c59e434ea97fa823e50a16a090 Mon Sep 17 00:00:00 2001 From: Milan Boers Date: Tue, 26 Apr 2022 13:42:05 +0200 Subject: [PATCH 02/10] Complete hints for HTTP-method functions in requests.sessions --- stubs/requests/requests/sessions.pyi | 123 ++++++++++++++------------- 1 file changed, 66 insertions(+), 57 deletions(-) diff --git a/stubs/requests/requests/sessions.pyi b/stubs/requests/requests/sessions.pyi index abed0d89172c..b24026b35ac7 100644 --- a/stubs/requests/requests/sessions.pyi +++ b/stubs/requests/requests/sessions.pyi @@ -45,9 +45,15 @@ class SessionRedirectMixin: def rebuild_proxies(self, prepared_request, proxies): ... def should_strip_auth(self, old_url, new_url): ... +_Auth: TypeAlias = Tuple[str, str] | _auth.AuthBase | Callable[[PreparedRequest], PreparedRequest] _Cert: TypeAlias = str | Tuple[str, str] -_Data: TypeAlias = str | bytes | Mapping[str, Any] | Iterable[tuple[str, str | None]] | IO[Any] | None - +_Data: TypeAlias = str | bytes | Mapping[str, Any] | Iterable[tuple[str, str | None]] | IO[Any] +_Files: TypeAlias = ( + MutableMapping[str, IO[Any]] + | MutableMapping[str, tuple[str, IO[Any]]] + | MutableMapping[str, tuple[str, IO[Any], str]] + | MutableMapping[str, tuple[str, IO[Any], str, "_TextMapping"]] +) _Hook: TypeAlias = Callable[[Response], Any] _Hooks: TypeAlias = MutableMapping[str, _Hook | list[_Hook]] _HooksInput: TypeAlias = MutableMapping[str, Iterable[_Hook] | _Hook] @@ -67,7 +73,7 @@ _Verify: TypeAlias = bool | str class Session(SessionRedirectMixin): __attrs__: Any headers: CaseInsensitiveDict[str] - auth: None | tuple[str, str] | _auth.AuthBase | Callable[[PreparedRequest], PreparedRequest] + auth: _Auth | None proxies: _TextMapping hooks: _Hooks params: _Params @@ -88,15 +94,11 @@ class Session(SessionRedirectMixin): method: str, url: str | bytes, params: _Params | None = ..., - data: _Data = ..., + data: _Data | None = ..., headers: _TextMapping | None = ..., - cookies: None | RequestsCookieJar | _TextMapping = ..., - files: MutableMapping[str, IO[Any]] - | MutableMapping[str, tuple[str, IO[Any]]] - | MutableMapping[str, tuple[str, IO[Any], str]] - | MutableMapping[str, tuple[str, IO[Any], str, _TextMapping]] - | None = ..., - auth: None | tuple[str, str] | _auth.AuthBase | Callable[[PreparedRequest], PreparedRequest] = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., timeout: _Timeout | None = ..., allow_redirects: bool = ..., proxies: _TextMapping | None = ..., @@ -109,16 +111,17 @@ class Session(SessionRedirectMixin): def get( self, url: str | bytes, + *, params: _Params | None = ..., - data: Any | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., + data: _Data | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., timeout: _Timeout | None = ..., allow_redirects: bool = ..., proxies: _TextMapping | None = ..., - hooks: Any | None = ..., + hooks: _HooksInput | None = ..., stream: bool | None = ..., verify: _Verify | None = ..., cert: _Cert | None = ..., @@ -127,17 +130,18 @@ class Session(SessionRedirectMixin): def options( self, url: str | bytes, + *, params: _Params | None = ..., - data: Any | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., + data: _Data | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., timeout: _Timeout | None = ..., allow_redirects: bool = ..., proxies: _TextMapping | None = ..., - hooks: Any | None = ..., - stream: Any | None = ..., + hooks: _HooksInput | None = ..., + stream: bool | None = ..., verify: _Verify | None = ..., cert: _Cert | None = ..., json: Any | None = ..., @@ -145,16 +149,17 @@ class Session(SessionRedirectMixin): def head( self, url: str | bytes, + *, params: _Params | None = ..., - data: Any | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., + data: _Data | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., timeout: _Timeout | None = ..., allow_redirects: bool = ..., proxies: _TextMapping | None = ..., - hooks: Any | None = ..., + hooks: _HooksInput | None = ..., stream: bool | None = ..., verify: _Verify | None = ..., cert: _Cert | None = ..., @@ -163,52 +168,55 @@ class Session(SessionRedirectMixin): def post( self, url: str | bytes, - data: _Data = ..., + data: _Data | None = ..., json: Any | None = ..., + *, params: _Params | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., timeout: _Timeout | None = ..., allow_redirects: bool = ..., proxies: _TextMapping | None = ..., - hooks: Any | None = ..., - stream: Any | None = ..., + hooks: _HooksInput | None = ..., + stream: bool | None = ..., verify: _Verify | None = ..., cert: _Cert | None = ..., ) -> Response: ... def put( self, url: str | bytes, - data: _Data = ..., + data: _Data | None = ..., + *, params: _Params | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., timeout: _Timeout | None = ..., allow_redirects: bool = ..., proxies: _TextMapping | None = ..., - hooks: Any | None = ..., + hooks: _HooksInput | None = ..., stream: bool | None = ..., verify: _Verify | None = ..., - cert: Any | None = ..., + cert: _Cert | None = ..., json: Any | None = ..., ) -> Response: ... def patch( self, url: str | bytes, - data: _Data = ..., + data: _Data | None = ..., + *, params: _Params | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., timeout: _Timeout | None = ..., allow_redirects: bool = ..., proxies: _TextMapping | None = ..., - hooks: Any | None = ..., + hooks: _HooksInput | None = ..., stream: bool | None = ..., verify: _Verify | None = ..., cert: _Cert | None = ..., @@ -217,19 +225,20 @@ class Session(SessionRedirectMixin): def delete( self, url: str | bytes, + *, params: _Params | None = ..., - data: Any | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., + data: _Data | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., timeout: _Timeout | None = ..., allow_redirects: bool = ..., proxies: _TextMapping | None = ..., - hooks: Any | None = ..., + hooks: _HooksInput | None = ..., stream: bool | None = ..., verify: _Verify | None = ..., - cert: Any | None = ..., + cert: _Cert | None = ..., json: Any | None = ..., ) -> Response: ... def send( From 403677913a2e57926a71407bf516e7688a40358d Mon Sep 17 00:00:00 2001 From: Milan Boers Date: Tue, 26 Apr 2022 13:55:20 +0200 Subject: [PATCH 03/10] Complete hints for requests.api --- stubs/requests/requests/api.pyi | 189 +++++++++++++++++--------------- 1 file changed, 99 insertions(+), 90 deletions(-) diff --git a/stubs/requests/requests/api.pyi b/stubs/requests/requests/api.pyi index a46d73227783..f636dc425e95 100644 --- a/stubs/requests/requests/api.pyi +++ b/stubs/requests/requests/api.pyi @@ -1,142 +1,151 @@ from typing import Any from .models import Response -from .sessions import _Data, _Params +from .sessions import RequestsCookieJar, _Auth, _Cert, _Data, _Files, _HooksInput, _Params, _TextMapping, _Timeout, _Verify + def request( - method: str | bytes, + method: str, url: str | bytes, + *, params: _Params | None = ..., - data: Any | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., - timeout: Any | None = ..., + data: _Data | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., - hooks: Any | None = ..., - stream: Any | None = ..., - verify: Any | None = ..., - cert: Any | None = ..., + proxies: _TextMapping | None = ..., + hooks: _HooksInput | None = ..., + stream: bool | None = ..., + verify: _Verify | None = ..., + cert: _Cert | None = ..., json: Any | None = ..., ) -> Response: ... def get( url: str | bytes, params: _Params | None = ..., - data: Any | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., - timeout: Any | None = ..., + *, + data: _Data | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., - hooks: Any | None = ..., - stream: Any | None = ..., - verify: Any | None = ..., - cert: Any | None = ..., + proxies: _TextMapping | None = ..., + hooks: _HooksInput | None = ..., + stream: bool | None = ..., + verify: _Verify | None = ..., + cert: _Cert | None = ..., json: Any | None = ..., ) -> Response: ... def options( url: str | bytes, + *, params: _Params | None = ..., - data: Any | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., - timeout: Any | None = ..., + data: _Data | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., - hooks: Any | None = ..., - stream: Any | None = ..., - verify: Any | None = ..., - cert: Any | None = ..., + proxies: _TextMapping | None = ..., + hooks: _HooksInput | None = ..., + stream: bool | None = ..., + verify: _Verify | None = ..., + cert: _Cert | None = ..., json: Any | None = ..., ) -> Response: ... def head( url: str | bytes, + *, params: _Params | None = ..., - data: Any | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., - timeout: Any | None = ..., + data: _Data | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., - hooks: Any | None = ..., - stream: Any | None = ..., - verify: Any | None = ..., - cert: Any | None = ..., + proxies: _TextMapping | None = ..., + hooks: _HooksInput | None = ..., + stream: bool | None = ..., + verify: _Verify | None = ..., + cert: _Cert | None = ..., json: Any | None = ..., ) -> Response: ... def post( url: str | bytes, - data: _Data = ..., + data: _Data | None = ..., json: Any | None = ..., + *, params: _Params | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., - timeout: Any | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., - hooks: Any | None = ..., - stream: Any | None = ..., - verify: Any | None = ..., - cert: Any | None = ..., + proxies: _TextMapping | None = ..., + hooks: _HooksInput | None = ..., + stream: bool | None = ..., + verify: _Verify | None = ..., + cert: _Cert | None = ..., ) -> Response: ... def put( url: str | bytes, - data: _Data = ..., + data: _Data | None = ..., + *, params: _Params | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., - timeout: Any | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., - hooks: Any | None = ..., - stream: Any | None = ..., - verify: Any | None = ..., - cert: Any | None = ..., + proxies: _TextMapping | None = ..., + hooks: _HooksInput | None = ..., + stream: bool | None = ..., + verify: _Verify | None = ..., + cert: _Cert | None = ..., json: Any | None = ..., ) -> Response: ... def patch( url: str | bytes, - data: _Data = ..., + data: _Data | None = ..., + *, params: _Params | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., - timeout: Any | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., - hooks: Any | None = ..., - stream: Any | None = ..., - verify: Any | None = ..., - cert: Any | None = ..., + proxies: _TextMapping | None = ..., + hooks: _HooksInput | None = ..., + stream: bool | None = ..., + verify: _Verify | None = ..., + cert: _Cert | None = ..., json: Any | None = ..., ) -> Response: ... def delete( url: str | bytes, + *, params: _Params | None = ..., - data: Any | None = ..., - headers: Any | None = ..., - cookies: Any | None = ..., - files: Any | None = ..., - auth: Any | None = ..., - timeout: Any | None = ..., + data: _Data | None = ..., + headers: _TextMapping | None = ..., + cookies: RequestsCookieJar | _TextMapping | None = ..., + files: _Files | None = ..., + auth: _Auth | None = ..., + timeout: _Timeout | None = ..., allow_redirects: bool = ..., - proxies: Any | None = ..., - hooks: Any | None = ..., - stream: Any | None = ..., - verify: Any | None = ..., - cert: Any | None = ..., + proxies: _TextMapping | None = ..., + hooks: _HooksInput | None = ..., + stream: bool | None = ..., + verify: _Verify | None = ..., + cert: _Cert | None = ..., json: Any | None = ..., ) -> Response: ... From d806fcc8c7b4893adcbdae7d9a958555d74a3d7a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 26 Apr 2022 15:18:02 +0000 Subject: [PATCH 04/10] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stubs/requests/requests/api.pyi | 1 - 1 file changed, 1 deletion(-) diff --git a/stubs/requests/requests/api.pyi b/stubs/requests/requests/api.pyi index f636dc425e95..a74e3a26075f 100644 --- a/stubs/requests/requests/api.pyi +++ b/stubs/requests/requests/api.pyi @@ -3,7 +3,6 @@ from typing import Any from .models import Response from .sessions import RequestsCookieJar, _Auth, _Cert, _Data, _Files, _HooksInput, _Params, _TextMapping, _Timeout, _Verify - def request( method: str, url: str | bytes, From b5457d8c477b959a55ebb3eddc77a2f94fdfad39 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Tue, 26 Apr 2022 09:28:54 -0600 Subject: [PATCH 05/10] Fix lint errors --- stubs/requests/requests/sessions.pyi | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/stubs/requests/requests/sessions.pyi b/stubs/requests/requests/sessions.pyi index b24026b35ac7..3ca6e4ab20d4 100644 --- a/stubs/requests/requests/sessions.pyi +++ b/stubs/requests/requests/sessions.pyi @@ -1,6 +1,6 @@ from _typeshed import Self, SupportsItems from collections.abc import Callable, Iterable, Mapping, MutableMapping -from typing import IO, Any, Tuple, Union +from typing import IO, Any, Union from typing_extensions import TypeAlias from urllib3._collections import RecentlyUsedContainer @@ -45,14 +45,14 @@ class SessionRedirectMixin: def rebuild_proxies(self, prepared_request, proxies): ... def should_strip_auth(self, old_url, new_url): ... -_Auth: TypeAlias = Tuple[str, str] | _auth.AuthBase | Callable[[PreparedRequest], PreparedRequest] -_Cert: TypeAlias = str | Tuple[str, str] +_Auth: TypeAlias = Union[tuple[str, str], _auth.AuthBase, Callable[[PreparedRequest], PreparedRequest]] +_Cert: TypeAlias = Union[str, tuple[str, str]] _Data: TypeAlias = str | bytes | Mapping[str, Any] | Iterable[tuple[str, str | None]] | IO[Any] _Files: TypeAlias = ( MutableMapping[str, IO[Any]] | MutableMapping[str, tuple[str, IO[Any]]] | MutableMapping[str, tuple[str, IO[Any], str]] - | MutableMapping[str, tuple[str, IO[Any], str, "_TextMapping"]] + | MutableMapping[str, tuple[str, IO[Any], str, _TextMapping]] ) _Hook: TypeAlias = Callable[[Response], Any] _Hooks: TypeAlias = MutableMapping[str, _Hook | list[_Hook]] @@ -67,7 +67,7 @@ _Params: TypeAlias = Union[ str | bytes, ] _TextMapping: TypeAlias = MutableMapping[str, str] -_Timeout: TypeAlias = float | Tuple[float, float] | Tuple[float, None] +_Timeout: TypeAlias = Union[float, tuple[float, float], tuple[float, None]] _Verify: TypeAlias = bool | str class Session(SessionRedirectMixin): From d6e7da23c73046988a2cedaed7d07106aa9908cc Mon Sep 17 00:00:00 2001 From: Milan Boers Date: Tue, 26 Apr 2022 17:27:15 +0200 Subject: [PATCH 06/10] Update requests stubtest_allowlist --- stubs/requests/@tests/stubtest_allowlist.txt | 30 -------------------- 1 file changed, 30 deletions(-) diff --git a/stubs/requests/@tests/stubtest_allowlist.txt b/stubs/requests/@tests/stubtest_allowlist.txt index ea5cde54af41..777b8f4f6197 100644 --- a/stubs/requests/@tests/stubtest_allowlist.txt +++ b/stubs/requests/@tests/stubtest_allowlist.txt @@ -1,39 +1,9 @@ -requests.Session.delete -requests.Session.get -requests.Session.head -requests.Session.options -requests.Session.patch -requests.Session.post -requests.Session.put requests.adapters.PoolManager.connection_from_host requests.adapters.PoolManager.connection_from_url requests.adapters.PoolManager.urlopen -requests.api.delete -requests.api.get -requests.api.head -requests.api.options -requests.api.patch -requests.api.post -requests.api.put -requests.api.request -requests.delete -requests.get -requests.head requests.models.RequestField.__init__ requests.models.RequestField.from_tuples -requests.options requests.packages.VendorAlias -requests.patch -requests.post -requests.put -requests.request -requests.sessions.Session.delete -requests.sessions.Session.get -requests.sessions.Session.head -requests.sessions.Session.options -requests.sessions.Session.patch -requests.sessions.Session.post -requests.sessions.Session.put requests.sessions.SessionRedirectMixin.resolve_redirects requests.structures.LookupDict.__getattr__ requests.structures.LookupDict.get From 8a5b8ef761843d26c6d5c06941fd452b5ada8485 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Tue, 26 Apr 2022 13:11:24 -0600 Subject: [PATCH 07/10] Improve diff readability --- stubs/requests/requests/sessions.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/requests/requests/sessions.pyi b/stubs/requests/requests/sessions.pyi index 3ca6e4ab20d4..80949f9f8f50 100644 --- a/stubs/requests/requests/sessions.pyi +++ b/stubs/requests/requests/sessions.pyi @@ -45,9 +45,9 @@ class SessionRedirectMixin: def rebuild_proxies(self, prepared_request, proxies): ... def should_strip_auth(self, old_url, new_url): ... +_Data: TypeAlias = str | bytes | Mapping[str, Any] | Iterable[tuple[str, str | None]] | IO[Any] _Auth: TypeAlias = Union[tuple[str, str], _auth.AuthBase, Callable[[PreparedRequest], PreparedRequest]] _Cert: TypeAlias = Union[str, tuple[str, str]] -_Data: TypeAlias = str | bytes | Mapping[str, Any] | Iterable[tuple[str, str | None]] | IO[Any] _Files: TypeAlias = ( MutableMapping[str, IO[Any]] | MutableMapping[str, tuple[str, IO[Any]]] From d84971ec6c4a4ba525dc1e9e3bf61e271987736e Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Tue, 26 Apr 2022 13:13:48 -0600 Subject: [PATCH 08/10] Improve diff readability --- stubs/requests/requests/sessions.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/requests/requests/sessions.pyi b/stubs/requests/requests/sessions.pyi index 80949f9f8f50..b24024108cc9 100644 --- a/stubs/requests/requests/sessions.pyi +++ b/stubs/requests/requests/sessions.pyi @@ -96,7 +96,7 @@ class Session(SessionRedirectMixin): params: _Params | None = ..., data: _Data | None = ..., headers: _TextMapping | None = ..., - cookies: RequestsCookieJar | _TextMapping | None = ..., + cookies: None | RequestsCookieJar | _TextMapping = ..., files: _Files | None = ..., auth: _Auth | None = ..., timeout: _Timeout | None = ..., From 0cb0b14e9f8387d38fa904766478b9e312329176 Mon Sep 17 00:00:00 2001 From: Milan Boers Date: Wed, 27 Apr 2022 09:14:26 +0200 Subject: [PATCH 09/10] requests: accept bytes for method parameter --- stubs/requests/requests/sessions.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/requests/requests/sessions.pyi b/stubs/requests/requests/sessions.pyi index b24024108cc9..174368d3fb2b 100644 --- a/stubs/requests/requests/sessions.pyi +++ b/stubs/requests/requests/sessions.pyi @@ -91,7 +91,7 @@ class Session(SessionRedirectMixin): def prepare_request(self, request: Request) -> PreparedRequest: ... def request( self, - method: str, + method: str | bytes, url: str | bytes, params: _Params | None = ..., data: _Data | None = ..., From c322dbe67ebbc994db5f32a9068ee2ff2fae2300 Mon Sep 17 00:00:00 2001 From: Akuli Date: Wed, 27 Apr 2022 11:53:22 +0300 Subject: [PATCH 10/10] Change method to "str | bytes" in requests.api.request() too --- stubs/requests/requests/api.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/requests/requests/api.pyi b/stubs/requests/requests/api.pyi index a74e3a26075f..ee6f446e5ca5 100644 --- a/stubs/requests/requests/api.pyi +++ b/stubs/requests/requests/api.pyi @@ -4,7 +4,7 @@ from .models import Response from .sessions import RequestsCookieJar, _Auth, _Cert, _Data, _Files, _HooksInput, _Params, _TextMapping, _Timeout, _Verify def request( - method: str, + method: str | bytes, url: str | bytes, *, params: _Params | None = ...,