9
9
import traceback
10
10
import warnings
11
11
from contextlib import suppress
12
- from types import SimpleNamespace , TracebackType
12
+ from types import TracebackType
13
13
from typing import (
14
14
TYPE_CHECKING ,
15
15
Any ,
155
155
156
156
157
157
class _RequestOptions (TypedDict , total = False ):
158
- params : Union [Mapping [str , str ] , None ]
158
+ params : Union [Mapping [str , Union [ str , int ]], str , None ]
159
159
data : Any
160
160
json : Any
161
161
cookies : Union [LooseCookies , None ]
@@ -175,7 +175,7 @@ class _RequestOptions(TypedDict, total=False):
175
175
ssl : Union [SSLContext , bool , Fingerprint ]
176
176
server_hostname : Union [str , None ]
177
177
proxy_headers : Union [LooseHeaders , None ]
178
- trace_request_ctx : Union [SimpleNamespace , None ]
178
+ trace_request_ctx : Union [Mapping [ str , str ] , None ]
179
179
read_bufsize : Union [int , None ]
180
180
auto_decompress : Union [bool , None ]
181
181
max_line_size : Union [int , None ]
@@ -422,11 +422,22 @@ def __del__(self, _warnings: Any = warnings) -> None:
422
422
context ["source_traceback" ] = self ._source_traceback
423
423
self ._loop .call_exception_handler (context )
424
424
425
- def request (
426
- self , method : str , url : StrOrURL , ** kwargs : Any
427
- ) -> "_RequestContextManager" :
428
- """Perform HTTP request."""
429
- return _RequestContextManager (self ._request (method , url , ** kwargs ))
425
+ if sys .version_info >= (3 , 11 ) and TYPE_CHECKING :
426
+
427
+ def request (
428
+ self ,
429
+ method : str ,
430
+ url : StrOrURL ,
431
+ ** kwargs : Unpack [_RequestOptions ],
432
+ ) -> "_RequestContextManager" : ...
433
+
434
+ else :
435
+
436
+ def request (
437
+ self , method : str , url : StrOrURL , ** kwargs : Any
438
+ ) -> "_RequestContextManager" :
439
+ """Perform HTTP request."""
440
+ return _RequestContextManager (self ._request (method , url , ** kwargs ))
430
441
431
442
def _build_url (self , str_or_url : StrOrURL ) -> URL :
432
443
url = URL (str_or_url )
@@ -466,7 +477,7 @@ async def _request(
466
477
ssl : Union [SSLContext , bool , Fingerprint ] = True ,
467
478
server_hostname : Optional [str ] = None ,
468
479
proxy_headers : Optional [LooseHeaders ] = None ,
469
- trace_request_ctx : Optional [SimpleNamespace ] = None ,
480
+ trace_request_ctx : Optional [Mapping [ str , str ] ] = None ,
470
481
read_bufsize : Optional [int ] = None ,
471
482
auto_decompress : Optional [bool ] = None ,
472
483
max_line_size : Optional [int ] = None ,
0 commit comments