|
29 | 29 | Set, |
30 | 30 | Tuple, |
31 | 31 | Type, |
| 32 | + TypedDict, |
32 | 33 | TypeVar, |
33 | 34 | Union, |
34 | 35 | final, |
|
149 | 150 | else: |
150 | 151 | SSLContext = None |
151 | 152 |
|
| 153 | +if sys.version_info >= (3, 11) and TYPE_CHECKING: |
| 154 | + from typing import Unpack |
| 155 | + |
| 156 | + |
| 157 | +class _RequestOptions(TypedDict, total=False): |
| 158 | + params: Union[Mapping[str, str], None] |
| 159 | + data: Any |
| 160 | + json: Any |
| 161 | + cookies: Union[LooseCookies, None] |
| 162 | + headers: Union[LooseHeaders, None] |
| 163 | + skip_auto_headers: Union[Iterable[str], None] |
| 164 | + auth: Union[BasicAuth, None] |
| 165 | + allow_redirects: bool |
| 166 | + max_redirects: int |
| 167 | + compress: Union[str, None] |
| 168 | + chunked: Union[bool, None] |
| 169 | + expect100: bool |
| 170 | + raise_for_status: Union[None, bool, Callable[[ClientResponse], Awaitable[None]]] |
| 171 | + read_until_eof: bool |
| 172 | + proxy: Union[StrOrURL, None] |
| 173 | + proxy_auth: Union[BasicAuth, None] |
| 174 | + timeout: "Union[ClientTimeout, _SENTINEL, None]" |
| 175 | + ssl: Union[SSLContext, bool, Fingerprint] |
| 176 | + server_hostname: Union[str, None] |
| 177 | + proxy_headers: Union[LooseHeaders, None] |
| 178 | + trace_request_ctx: Union[SimpleNamespace, None] |
| 179 | + read_bufsize: Union[int, None] |
| 180 | + auto_decompress: Union[bool, None] |
| 181 | + max_line_size: Union[int, None] |
| 182 | + max_field_size: Union[int, None] |
| 183 | + |
152 | 184 |
|
153 | 185 | @dataclasses.dataclass(frozen=True) |
154 | 186 | class ClientTimeout: |
@@ -986,61 +1018,111 @@ def _prepare_headers(self, headers: Optional[LooseHeaders]) -> "CIMultiDict[str] |
986 | 1018 | added_names.add(key) |
987 | 1019 | return result |
988 | 1020 |
|
989 | | - def get( |
990 | | - self, url: StrOrURL, *, allow_redirects: bool = True, **kwargs: Any |
991 | | - ) -> "_RequestContextManager": |
992 | | - """Perform HTTP GET request.""" |
993 | | - return _RequestContextManager( |
994 | | - self._request(hdrs.METH_GET, url, allow_redirects=allow_redirects, **kwargs) |
995 | | - ) |
| 1021 | + if sys.version_info >= (3, 11) and TYPE_CHECKING: |
| 1022 | + |
| 1023 | + def get( |
| 1024 | + self, |
| 1025 | + url: StrOrURL, |
| 1026 | + **kwargs: Unpack[_RequestOptions], |
| 1027 | + ) -> "_RequestContextManager": ... |
| 1028 | + |
| 1029 | + def options( |
| 1030 | + self, |
| 1031 | + url: StrOrURL, |
| 1032 | + **kwargs: Unpack[_RequestOptions], |
| 1033 | + ) -> "_RequestContextManager": ... |
| 1034 | + |
| 1035 | + def head( |
| 1036 | + self, |
| 1037 | + url: StrOrURL, |
| 1038 | + **kwargs: Unpack[_RequestOptions], |
| 1039 | + ) -> "_RequestContextManager": ... |
| 1040 | + |
| 1041 | + def post( |
| 1042 | + self, |
| 1043 | + url: StrOrURL, |
| 1044 | + **kwargs: Unpack[_RequestOptions], |
| 1045 | + ) -> "_RequestContextManager": ... |
| 1046 | + |
| 1047 | + def put( |
| 1048 | + self, |
| 1049 | + url: StrOrURL, |
| 1050 | + **kwargs: Unpack[_RequestOptions], |
| 1051 | + ) -> "_RequestContextManager": ... |
| 1052 | + |
| 1053 | + def patch( |
| 1054 | + self, |
| 1055 | + url: StrOrURL, |
| 1056 | + **kwargs: Unpack[_RequestOptions], |
| 1057 | + ) -> "_RequestContextManager": ... |
| 1058 | + |
| 1059 | + def delete( |
| 1060 | + self, |
| 1061 | + url: StrOrURL, |
| 1062 | + **kwargs: Unpack[_RequestOptions], |
| 1063 | + ) -> "_RequestContextManager": ... |
| 1064 | + |
| 1065 | + else: |
| 1066 | + |
| 1067 | + def get( |
| 1068 | + self, url: StrOrURL, *, allow_redirects: bool = True, **kwargs: Any |
| 1069 | + ) -> "_RequestContextManager": |
| 1070 | + """Perform HTTP GET request.""" |
| 1071 | + return _RequestContextManager( |
| 1072 | + self._request( |
| 1073 | + hdrs.METH_GET, url, allow_redirects=allow_redirects, **kwargs |
| 1074 | + ) |
| 1075 | + ) |
996 | 1076 |
|
997 | | - def options( |
998 | | - self, url: StrOrURL, *, allow_redirects: bool = True, **kwargs: Any |
999 | | - ) -> "_RequestContextManager": |
1000 | | - """Perform HTTP OPTIONS request.""" |
1001 | | - return _RequestContextManager( |
1002 | | - self._request( |
1003 | | - hdrs.METH_OPTIONS, url, allow_redirects=allow_redirects, **kwargs |
| 1077 | + def options( |
| 1078 | + self, url: StrOrURL, *, allow_redirects: bool = True, **kwargs: Any |
| 1079 | + ) -> "_RequestContextManager": |
| 1080 | + """Perform HTTP OPTIONS request.""" |
| 1081 | + return _RequestContextManager( |
| 1082 | + self._request( |
| 1083 | + hdrs.METH_OPTIONS, url, allow_redirects=allow_redirects, **kwargs |
| 1084 | + ) |
1004 | 1085 | ) |
1005 | | - ) |
1006 | 1086 |
|
1007 | | - def head( |
1008 | | - self, url: StrOrURL, *, allow_redirects: bool = False, **kwargs: Any |
1009 | | - ) -> "_RequestContextManager": |
1010 | | - """Perform HTTP HEAD request.""" |
1011 | | - return _RequestContextManager( |
1012 | | - self._request( |
1013 | | - hdrs.METH_HEAD, url, allow_redirects=allow_redirects, **kwargs |
| 1087 | + def head( |
| 1088 | + self, url: StrOrURL, *, allow_redirects: bool = False, **kwargs: Any |
| 1089 | + ) -> "_RequestContextManager": |
| 1090 | + """Perform HTTP HEAD request.""" |
| 1091 | + return _RequestContextManager( |
| 1092 | + self._request( |
| 1093 | + hdrs.METH_HEAD, url, allow_redirects=allow_redirects, **kwargs |
| 1094 | + ) |
1014 | 1095 | ) |
1015 | | - ) |
1016 | 1096 |
|
1017 | | - def post( |
1018 | | - self, url: StrOrURL, *, data: Any = None, **kwargs: Any |
1019 | | - ) -> "_RequestContextManager": |
1020 | | - """Perform HTTP POST request.""" |
1021 | | - return _RequestContextManager( |
1022 | | - self._request(hdrs.METH_POST, url, data=data, **kwargs) |
1023 | | - ) |
| 1097 | + def post( |
| 1098 | + self, url: StrOrURL, *, data: Any = None, **kwargs: Any |
| 1099 | + ) -> "_RequestContextManager": |
| 1100 | + """Perform HTTP POST request.""" |
| 1101 | + return _RequestContextManager( |
| 1102 | + self._request(hdrs.METH_POST, url, data=data, **kwargs) |
| 1103 | + ) |
1024 | 1104 |
|
1025 | | - def put( |
1026 | | - self, url: StrOrURL, *, data: Any = None, **kwargs: Any |
1027 | | - ) -> "_RequestContextManager": |
1028 | | - """Perform HTTP PUT request.""" |
1029 | | - return _RequestContextManager( |
1030 | | - self._request(hdrs.METH_PUT, url, data=data, **kwargs) |
1031 | | - ) |
| 1105 | + def put( |
| 1106 | + self, url: StrOrURL, *, data: Any = None, **kwargs: Any |
| 1107 | + ) -> "_RequestContextManager": |
| 1108 | + """Perform HTTP PUT request.""" |
| 1109 | + return _RequestContextManager( |
| 1110 | + self._request(hdrs.METH_PUT, url, data=data, **kwargs) |
| 1111 | + ) |
1032 | 1112 |
|
1033 | | - def patch( |
1034 | | - self, url: StrOrURL, *, data: Any = None, **kwargs: Any |
1035 | | - ) -> "_RequestContextManager": |
1036 | | - """Perform HTTP PATCH request.""" |
1037 | | - return _RequestContextManager( |
1038 | | - self._request(hdrs.METH_PATCH, url, data=data, **kwargs) |
1039 | | - ) |
| 1113 | + def patch( |
| 1114 | + self, url: StrOrURL, *, data: Any = None, **kwargs: Any |
| 1115 | + ) -> "_RequestContextManager": |
| 1116 | + """Perform HTTP PATCH request.""" |
| 1117 | + return _RequestContextManager( |
| 1118 | + self._request(hdrs.METH_PATCH, url, data=data, **kwargs) |
| 1119 | + ) |
1040 | 1120 |
|
1041 | | - def delete(self, url: StrOrURL, **kwargs: Any) -> "_RequestContextManager": |
1042 | | - """Perform HTTP DELETE request.""" |
1043 | | - return _RequestContextManager(self._request(hdrs.METH_DELETE, url, **kwargs)) |
| 1121 | + def delete(self, url: StrOrURL, **kwargs: Any) -> "_RequestContextManager": |
| 1122 | + """Perform HTTP DELETE request.""" |
| 1123 | + return _RequestContextManager( |
| 1124 | + self._request(hdrs.METH_DELETE, url, **kwargs) |
| 1125 | + ) |
1044 | 1126 |
|
1045 | 1127 | async def close(self) -> None: |
1046 | 1128 | """Close underlying connector. |
|
0 commit comments