From 9a09db46f5542aeb81104de5f9bd3154538782f6 Mon Sep 17 00:00:00 2001 From: Akuli Date: Thu, 19 May 2022 05:31:34 +0300 Subject: [PATCH] Fix requests.Session().hooks (#7871) Fixes #7776 Mutating hooks, as in `session.hooks['response'] = ...`, should work. Reassigning it like `session.hooks = ...` is probably a bad idea, so it will always be a `dict`. --- stubs/requests/requests/sessions.pyi | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/stubs/requests/requests/sessions.pyi b/stubs/requests/requests/sessions.pyi index 49c69d3da..96321399d 100644 --- a/stubs/requests/requests/sessions.pyi +++ b/stubs/requests/requests/sessions.pyi @@ -55,7 +55,6 @@ _Files: TypeAlias = ( | Mapping[str, tuple[str | None, SupportsRead[str | bytes] | str | bytes, str, _TextMapping]] ) _Hook: TypeAlias = Callable[[Response], Any] -_Hooks: TypeAlias = Mapping[str, _Hook | list[_Hook]] _HooksInput: TypeAlias = Mapping[str, Iterable[_Hook] | _Hook] _ParamsMappingKeyType: TypeAlias = str | bytes | int | float @@ -85,7 +84,10 @@ class Session(SessionRedirectMixin): headers: CaseInsensitiveDict[str | bytes] auth: _Auth | None proxies: _TextMapping - hooks: _Hooks + # Don't complain if: + # - value is assumed to be a list (which it is by default) + # - a _Hook is assigned directly, without wrapping it in a list (also works) + hooks: dict[str, list[_Hook] | Any] params: _Params stream: bool verify: None | bool | str