1+ from __future__ import annotations
2+
13import ssl
24import sys
35from types import TracebackType
4- from typing import AsyncIterable , AsyncIterator , Iterable , List , Optional , Type
6+ from typing import AsyncIterable , AsyncIterator , Iterable
57
68from .._backends .auto import AutoBackend
79from .._backends .base import SOCKET_OPTION , AsyncNetworkBackend
1517class AsyncPoolRequest :
1618 def __init__ (self , request : Request ) -> None :
1719 self .request = request
18- self .connection : Optional [ AsyncConnectionInterface ] = None
20+ self .connection : AsyncConnectionInterface | None = None
1921 self ._connection_acquired = AsyncEvent ()
2022
21- def assign_to_connection (
22- self , connection : Optional [AsyncConnectionInterface ]
23- ) -> None :
23+ def assign_to_connection (self , connection : AsyncConnectionInterface | None ) -> None :
2424 self .connection = connection
2525 self ._connection_acquired .set ()
2626
@@ -29,7 +29,7 @@ def clear_connection(self) -> None:
2929 self ._connection_acquired = AsyncEvent ()
3030
3131 async def wait_for_connection (
32- self , timeout : Optional [ float ] = None
32+ self , timeout : float | None = None
3333 ) -> AsyncConnectionInterface :
3434 if self .connection is None :
3535 await self ._connection_acquired .wait (timeout = timeout )
@@ -47,17 +47,17 @@ class AsyncConnectionPool(AsyncRequestInterface):
4747
4848 def __init__ (
4949 self ,
50- ssl_context : Optional [ ssl .SSLContext ] = None ,
51- max_connections : Optional [ int ] = 10 ,
52- max_keepalive_connections : Optional [ int ] = None ,
53- keepalive_expiry : Optional [ float ] = None ,
50+ ssl_context : ssl .SSLContext | None = None ,
51+ max_connections : int | None = 10 ,
52+ max_keepalive_connections : int | None = None ,
53+ keepalive_expiry : float | None = None ,
5454 http1 : bool = True ,
5555 http2 : bool = False ,
5656 retries : int = 0 ,
57- local_address : Optional [ str ] = None ,
58- uds : Optional [ str ] = None ,
59- network_backend : Optional [ AsyncNetworkBackend ] = None ,
60- socket_options : Optional [ Iterable [SOCKET_OPTION ]] = None ,
57+ local_address : str | None = None ,
58+ uds : str | None = None ,
59+ network_backend : AsyncNetworkBackend | None = None ,
60+ socket_options : Iterable [SOCKET_OPTION ] | None = None ,
6161 ) -> None :
6262 """
6363 A connection pool for making HTTP requests.
@@ -116,8 +116,8 @@ def __init__(
116116
117117 # The mutable state on a connection pool is the queue of incoming requests,
118118 # and the set of connections that are servicing those requests.
119- self ._connections : List [AsyncConnectionInterface ] = []
120- self ._requests : List [AsyncPoolRequest ] = []
119+ self ._connections : list [AsyncConnectionInterface ] = []
120+ self ._requests : list [AsyncPoolRequest ] = []
121121
122122 # We only mutate the state of the connection pool within an 'optional_thread_lock'
123123 # context. This holds a threading lock unless we're running in async mode,
@@ -139,7 +139,7 @@ def create_connection(self, origin: Origin) -> AsyncConnectionInterface:
139139 )
140140
141141 @property
142- def connections (self ) -> List [AsyncConnectionInterface ]:
142+ def connections (self ) -> list [AsyncConnectionInterface ]:
143143 """
144144 Return a list of the connections currently in the pool.
145145
@@ -227,7 +227,7 @@ async def handle_async_request(self, request: Request) -> Response:
227227 extensions = response .extensions ,
228228 )
229229
230- def _assign_requests_to_connections (self ) -> List [AsyncConnectionInterface ]:
230+ def _assign_requests_to_connections (self ) -> list [AsyncConnectionInterface ]:
231231 """
232232 Manage the state of the connection pool, assigning incoming
233233 requests to connections as available.
@@ -298,7 +298,7 @@ def _assign_requests_to_connections(self) -> List[AsyncConnectionInterface]:
298298
299299 return closing_connections
300300
301- async def _close_connections (self , closing : List [AsyncConnectionInterface ]) -> None :
301+ async def _close_connections (self , closing : list [AsyncConnectionInterface ]) -> None :
302302 # Close connections which have been removed from the pool.
303303 with AsyncShieldCancellation ():
304304 for connection in closing :
@@ -312,14 +312,14 @@ async def aclose(self) -> None:
312312 self ._connections = []
313313 await self ._close_connections (closing_connections )
314314
315- async def __aenter__ (self ) -> " AsyncConnectionPool" :
315+ async def __aenter__ (self ) -> AsyncConnectionPool :
316316 return self
317317
318318 async def __aexit__ (
319319 self ,
320- exc_type : Optional [ Type [ BaseException ]] = None ,
321- exc_value : Optional [ BaseException ] = None ,
322- traceback : Optional [ TracebackType ] = None ,
320+ exc_type : type [ BaseException ] | None = None ,
321+ exc_value : BaseException | None = None ,
322+ traceback : TracebackType | None = None ,
323323 ) -> None :
324324 await self .aclose ()
325325
0 commit comments