|
27 | 27 | Set, |
28 | 28 | Tuple, |
29 | 29 | Type, |
| 30 | + TypedDict, |
30 | 31 | TypeVar, |
31 | 32 | Union, |
32 | 33 | ) |
|
150 | 151 | else: |
151 | 152 | SSLContext = None |
152 | 153 |
|
| 154 | +if sys.version_info >= (3, 11) and TYPE_CHECKING: |
| 155 | + from typing import Unpack |
| 156 | + |
| 157 | + |
| 158 | +class _RequestOptions(TypedDict, total=False): |
| 159 | + params: Union[Mapping[str, str], None] |
| 160 | + data: Any |
| 161 | + json: Any |
| 162 | + cookies: Union[LooseCookies, None] |
| 163 | + headers: Union[LooseHeaders, None] |
| 164 | + skip_auto_headers: Union[Iterable[str], None] |
| 165 | + auth: Union[BasicAuth, None] |
| 166 | + allow_redirects: bool |
| 167 | + max_redirects: int |
| 168 | + compress: Union[str, None] |
| 169 | + chunked: Union[bool, None] |
| 170 | + expect100: bool |
| 171 | + raise_for_status: Union[None, bool, Callable[[ClientResponse], Awaitable[None]]] |
| 172 | + read_until_eof: bool |
| 173 | + proxy: Union[StrOrURL, None] |
| 174 | + proxy_auth: Union[BasicAuth, None] |
| 175 | + timeout: "Union[ClientTimeout, _SENTINEL, None]" |
| 176 | + ssl: Union[SSLContext, bool, Fingerprint] |
| 177 | + server_hostname: Union[str, None] |
| 178 | + proxy_headers: Union[LooseHeaders, None] |
| 179 | + trace_request_ctx: Union[SimpleNamespace, None] |
| 180 | + read_bufsize: Union[int, None] |
| 181 | + auto_decompress: Union[bool, None] |
| 182 | + max_line_size: Union[int, None] |
| 183 | + max_field_size: Union[int, None] |
| 184 | + |
153 | 185 |
|
154 | 186 | @attr.s(auto_attribs=True, frozen=True, slots=True) |
155 | 187 | class ClientTimeout: |
@@ -1024,61 +1056,111 @@ def _prepare_headers(self, headers: Optional[LooseHeaders]) -> "CIMultiDict[str] |
1024 | 1056 | added_names.add(key) |
1025 | 1057 | return result |
1026 | 1058 |
|
1027 | | - def get( |
1028 | | - self, url: StrOrURL, *, allow_redirects: bool = True, **kwargs: Any |
1029 | | - ) -> "_RequestContextManager": |
1030 | | - """Perform HTTP GET request.""" |
1031 | | - return _RequestContextManager( |
1032 | | - self._request(hdrs.METH_GET, url, allow_redirects=allow_redirects, **kwargs) |
1033 | | - ) |
| 1059 | + if sys.version_info >= (3, 11) and TYPE_CHECKING: |
| 1060 | + |
| 1061 | + def get( |
| 1062 | + self, |
| 1063 | + url: StrOrURL, |
| 1064 | + **kwargs: Unpack[_RequestOptions], |
| 1065 | + ) -> "_RequestContextManager": ... |
| 1066 | + |
| 1067 | + def options( |
| 1068 | + self, |
| 1069 | + url: StrOrURL, |
| 1070 | + **kwargs: Unpack[_RequestOptions], |
| 1071 | + ) -> "_RequestContextManager": ... |
| 1072 | + |
| 1073 | + def head( |
| 1074 | + self, |
| 1075 | + url: StrOrURL, |
| 1076 | + **kwargs: Unpack[_RequestOptions], |
| 1077 | + ) -> "_RequestContextManager": ... |
| 1078 | + |
| 1079 | + def post( |
| 1080 | + self, |
| 1081 | + url: StrOrURL, |
| 1082 | + **kwargs: Unpack[_RequestOptions], |
| 1083 | + ) -> "_RequestContextManager": ... |
| 1084 | + |
| 1085 | + def put( |
| 1086 | + self, |
| 1087 | + url: StrOrURL, |
| 1088 | + **kwargs: Unpack[_RequestOptions], |
| 1089 | + ) -> "_RequestContextManager": ... |
| 1090 | + |
| 1091 | + def patch( |
| 1092 | + self, |
| 1093 | + url: StrOrURL, |
| 1094 | + **kwargs: Unpack[_RequestOptions], |
| 1095 | + ) -> "_RequestContextManager": ... |
| 1096 | + |
| 1097 | + def delete( |
| 1098 | + self, |
| 1099 | + url: StrOrURL, |
| 1100 | + **kwargs: Unpack[_RequestOptions], |
| 1101 | + ) -> "_RequestContextManager": ... |
| 1102 | + |
| 1103 | + else: |
| 1104 | + |
| 1105 | + def get( |
| 1106 | + self, url: StrOrURL, *, allow_redirects: bool = True, **kwargs: Any |
| 1107 | + ) -> "_RequestContextManager": |
| 1108 | + """Perform HTTP GET request.""" |
| 1109 | + return _RequestContextManager( |
| 1110 | + self._request( |
| 1111 | + hdrs.METH_GET, url, allow_redirects=allow_redirects, **kwargs |
| 1112 | + ) |
| 1113 | + ) |
1034 | 1114 |
|
1035 | | - def options( |
1036 | | - self, url: StrOrURL, *, allow_redirects: bool = True, **kwargs: Any |
1037 | | - ) -> "_RequestContextManager": |
1038 | | - """Perform HTTP OPTIONS request.""" |
1039 | | - return _RequestContextManager( |
1040 | | - self._request( |
1041 | | - hdrs.METH_OPTIONS, url, allow_redirects=allow_redirects, **kwargs |
| 1115 | + def options( |
| 1116 | + self, url: StrOrURL, *, allow_redirects: bool = True, **kwargs: Any |
| 1117 | + ) -> "_RequestContextManager": |
| 1118 | + """Perform HTTP OPTIONS request.""" |
| 1119 | + return _RequestContextManager( |
| 1120 | + self._request( |
| 1121 | + hdrs.METH_OPTIONS, url, allow_redirects=allow_redirects, **kwargs |
| 1122 | + ) |
1042 | 1123 | ) |
1043 | | - ) |
1044 | 1124 |
|
1045 | | - def head( |
1046 | | - self, url: StrOrURL, *, allow_redirects: bool = False, **kwargs: Any |
1047 | | - ) -> "_RequestContextManager": |
1048 | | - """Perform HTTP HEAD request.""" |
1049 | | - return _RequestContextManager( |
1050 | | - self._request( |
1051 | | - hdrs.METH_HEAD, url, allow_redirects=allow_redirects, **kwargs |
| 1125 | + def head( |
| 1126 | + self, url: StrOrURL, *, allow_redirects: bool = False, **kwargs: Any |
| 1127 | + ) -> "_RequestContextManager": |
| 1128 | + """Perform HTTP HEAD request.""" |
| 1129 | + return _RequestContextManager( |
| 1130 | + self._request( |
| 1131 | + hdrs.METH_HEAD, url, allow_redirects=allow_redirects, **kwargs |
| 1132 | + ) |
1052 | 1133 | ) |
1053 | | - ) |
1054 | 1134 |
|
1055 | | - def post( |
1056 | | - self, url: StrOrURL, *, data: Any = None, **kwargs: Any |
1057 | | - ) -> "_RequestContextManager": |
1058 | | - """Perform HTTP POST request.""" |
1059 | | - return _RequestContextManager( |
1060 | | - self._request(hdrs.METH_POST, url, data=data, **kwargs) |
1061 | | - ) |
| 1135 | + def post( |
| 1136 | + self, url: StrOrURL, *, data: Any = None, **kwargs: Any |
| 1137 | + ) -> "_RequestContextManager": |
| 1138 | + """Perform HTTP POST request.""" |
| 1139 | + return _RequestContextManager( |
| 1140 | + self._request(hdrs.METH_POST, url, data=data, **kwargs) |
| 1141 | + ) |
1062 | 1142 |
|
1063 | | - def put( |
1064 | | - self, url: StrOrURL, *, data: Any = None, **kwargs: Any |
1065 | | - ) -> "_RequestContextManager": |
1066 | | - """Perform HTTP PUT request.""" |
1067 | | - return _RequestContextManager( |
1068 | | - self._request(hdrs.METH_PUT, url, data=data, **kwargs) |
1069 | | - ) |
| 1143 | + def put( |
| 1144 | + self, url: StrOrURL, *, data: Any = None, **kwargs: Any |
| 1145 | + ) -> "_RequestContextManager": |
| 1146 | + """Perform HTTP PUT request.""" |
| 1147 | + return _RequestContextManager( |
| 1148 | + self._request(hdrs.METH_PUT, url, data=data, **kwargs) |
| 1149 | + ) |
1070 | 1150 |
|
1071 | | - def patch( |
1072 | | - self, url: StrOrURL, *, data: Any = None, **kwargs: Any |
1073 | | - ) -> "_RequestContextManager": |
1074 | | - """Perform HTTP PATCH request.""" |
1075 | | - return _RequestContextManager( |
1076 | | - self._request(hdrs.METH_PATCH, url, data=data, **kwargs) |
1077 | | - ) |
| 1151 | + def patch( |
| 1152 | + self, url: StrOrURL, *, data: Any = None, **kwargs: Any |
| 1153 | + ) -> "_RequestContextManager": |
| 1154 | + """Perform HTTP PATCH request.""" |
| 1155 | + return _RequestContextManager( |
| 1156 | + self._request(hdrs.METH_PATCH, url, data=data, **kwargs) |
| 1157 | + ) |
1078 | 1158 |
|
1079 | | - def delete(self, url: StrOrURL, **kwargs: Any) -> "_RequestContextManager": |
1080 | | - """Perform HTTP DELETE request.""" |
1081 | | - return _RequestContextManager(self._request(hdrs.METH_DELETE, url, **kwargs)) |
| 1159 | + def delete(self, url: StrOrURL, **kwargs: Any) -> "_RequestContextManager": |
| 1160 | + """Perform HTTP DELETE request.""" |
| 1161 | + return _RequestContextManager( |
| 1162 | + self._request(hdrs.METH_DELETE, url, **kwargs) |
| 1163 | + ) |
1082 | 1164 |
|
1083 | 1165 | async def close(self) -> None: |
1084 | 1166 | """Close underlying connector. |
|
0 commit comments