1414
1515
1616@asynccontextmanager
17- async def create_client_server_memory_streams () -> AsyncGenerator [ Tuple [
18- Tuple [MemoryObjectReceiveStream [JSONRPCMessage | Exception ], MemoryObjectSendStream [JSONRPCMessage ]],
19- Tuple [MemoryObjectReceiveStream [JSONRPCMessage | Exception ], MemoryObjectSendStream [JSONRPCMessage ]]
20- ], None ]:
17+ async def create_client_server_memory_streams () -> (
18+ AsyncGenerator [
19+ Tuple [
20+ Tuple [
21+ MemoryObjectReceiveStream [JSONRPCMessage | Exception ],
22+ MemoryObjectSendStream [JSONRPCMessage ],
23+ ],
24+ Tuple [
25+ MemoryObjectReceiveStream [JSONRPCMessage | Exception ],
26+ MemoryObjectSendStream [JSONRPCMessage ],
27+ ],
28+ ],
29+ None ,
30+ ]
31+ ):
2132 """
2233 Creates a pair of bidirectional memory streams for client-server communication.
2334
@@ -26,42 +37,55 @@ async def create_client_server_memory_streams() -> AsyncGenerator[ Tuple[
2637 (read_stream, write_stream)
2738 """
2839 # Create streams for both directions
29- server_to_client_send , server_to_client_receive = anyio .create_memory_object_stream [JSONRPCMessage | Exception ](1 )
30- client_to_server_send , client_to_server_receive = anyio .create_memory_object_stream [JSONRPCMessage | Exception ](1 )
40+ server_to_client_send , server_to_client_receive = anyio .create_memory_object_stream [
41+ JSONRPCMessage | Exception
42+ ](1 )
43+ client_to_server_send , client_to_server_receive = anyio .create_memory_object_stream [
44+ JSONRPCMessage | Exception
45+ ](1 )
3146
3247 # Return streams grouped by client/server
3348 client_streams = (server_to_client_receive , client_to_server_send )
3449 server_streams = (client_to_server_receive , server_to_client_send )
3550
36- async with (server_to_client_receive , client_to_server_send ,
37- client_to_server_receive , server_to_client_send ):
51+ async with (
52+ server_to_client_receive ,
53+ client_to_server_send ,
54+ client_to_server_receive ,
55+ server_to_client_send ,
56+ ):
3857 yield client_streams , server_streams
3958
4059
4160@asynccontextmanager
42- async def create_connected_server_and_client_session (server : Server ) -> AsyncGenerator [ClientSession , None ]:
61+ async def create_connected_server_and_client_session (
62+ server : Server ,
63+ ) -> AsyncGenerator [ClientSession , None ]:
4364 """Creates a ServerSession that is connected to the `server`."""
44- async with create_client_server_memory_streams () as (client_streams , server_streams ):
65+ async with create_client_server_memory_streams () as (
66+ client_streams ,
67+ server_streams ,
68+ ):
4569 # Unpack the streams
4670 client_read , client_write = client_streams
4771 server_read , server_write = server_streams
4872 print ("stream-1" )
4973
5074 # Create a cancel scope for the server task
5175 async with anyio .create_task_group () as tg :
52-
5376 tg .start_soon (
5477 server .run ,
5578 server_read ,
5679 server_write ,
57- server .create_initialization_options ()
80+ server .create_initialization_options (),
5881 )
5982
6083 print ("stream2" )
6184
6285 try :
63- # Client session could be created here using client_read and client_write
64- # This would allow testing the server with a client in the same process
86+ # Client session could be created here using client_read and
87+ # client_write This would allow testing the server with a client
88+ # in the same process
6589 async with ClientSession (
6690 read_stream = client_read , write_stream = client_write
6791 ) as client_session :
0 commit comments