1
+ from __future__ import annotations
2
+
1
3
import asyncio
2
4
import json
3
5
import warnings
4
6
from datetime import datetime , timezone
5
- from typing import Any , AsyncGenerator , Callable , Mapping , Optional , Union
7
+ from typing import Any , AsyncGenerator , Callable , Mapping
6
8
7
9
import attr
8
10
@@ -124,7 +126,7 @@ async def _do_auto_reconnect(
124
126
125
127
async def _do_close (
126
128
self ,
127
- error : Optional [ Union [ Exception , str ]] = None ,
129
+ error : Exception | str | None = None ,
128
130
change_status : bool = True ,
129
131
silent : bool = False ,
130
132
) -> None :
@@ -196,10 +198,10 @@ async def _do_close(
196
198
197
199
async def execute (
198
200
self ,
199
- command : Union [ str , bytes ] ,
201
+ command : str | bytes ,
200
202
* args : Any ,
201
- data : Optional [ Any ] = None ,
202
- callback : Optional [ Callable [[TCPResponse ], Any ]] = None ,
203
+ data : Any | None = None ,
204
+ callback : Callable [[TCPResponse ], Any ] | None = None ,
203
205
) -> TCPResponse :
204
206
"""Execute command
205
207
@@ -263,9 +265,9 @@ async def execute(
263
265
264
266
async def identify (
265
267
self ,
266
- config : Optional [ Union [ dict , str ]] = None ,
268
+ config : dict | str | None = None ,
267
269
* ,
268
- features : Optional [ ConnectionFeatures ] = None ,
270
+ features : ConnectionFeatures | None = None ,
269
271
** kwargs : Any ,
270
272
) -> TCPResponse :
271
273
"""Executes `IDENTIFY` command.
@@ -362,7 +364,7 @@ async def _read_data_task(self) -> None:
362
364
"""Response reader task."""
363
365
assert self ._reader is not None
364
366
365
- error : Optional [ Exception ] = None
367
+ error : Exception | None = None
366
368
367
369
while not self ._reader .at_eof ():
368
370
try :
@@ -461,10 +463,10 @@ async def _read_buffer(self) -> None:
461
463
while is_continue :
462
464
is_continue = await self ._parse_data ()
463
465
464
- def _start_upgrading (self , resp : Optional [ TCPResponse ] = None ) -> None :
466
+ def _start_upgrading (self , resp : TCPResponse | None = None ) -> None :
465
467
self ._is_upgrading = True
466
468
467
- async def _finish_upgrading (self , resp : Optional [ TCPResponse ] = None ) -> None :
469
+ async def _finish_upgrading (self , resp : TCPResponse | None = None ) -> None :
468
470
await self ._read_buffer ()
469
471
self ._is_upgrading = False
470
472
@@ -522,13 +524,13 @@ async def rdy(self, messages_count: int = 1) -> None:
522
524
self .rdy_messages_count = messages_count
523
525
await self .execute (NSQCommands .RDY , messages_count )
524
526
525
- async def fin (self , message_id : Union [ str , NSQMessage ] ) -> None :
527
+ async def fin (self , message_id : str | NSQMessage ) -> None :
526
528
"""Finish a message (indicate successful processing)"""
527
529
if isinstance (message_id , NSQMessage ):
528
530
await message_id .fin ()
529
531
await self .execute (NSQCommands .FIN , message_id )
530
532
531
- async def req (self , message_id : Union [ str , NSQMessage ] , timeout : int = 0 ) -> None :
533
+ async def req (self , message_id : str | NSQMessage , timeout : int = 0 ) -> None :
532
534
"""Re-queue a message (indicate failure to process)
533
535
534
536
The re-queued message is placed at the tail of the queue,
@@ -538,7 +540,7 @@ async def req(self, message_id: Union[str, NSQMessage], timeout: int = 0) -> Non
538
540
await message_id .req (timeout )
539
541
await self .execute (NSQCommands .REQ , message_id , timeout )
540
542
541
- async def touch (self , message_id : Union [ str , NSQMessage ] ) -> None :
543
+ async def touch (self , message_id : str | NSQMessage ) -> None :
542
544
"""Reset the timeout for an in-flight message"""
543
545
if isinstance (message_id , NSQMessage ):
544
546
await message_id .touch ()
@@ -570,7 +572,7 @@ async def messages(self) -> AsyncGenerator[NSQMessage, None]:
570
572
continue
571
573
yield message
572
574
573
- def get_message (self ) -> Optional [ NSQMessage ] :
575
+ def get_message (self ) -> NSQMessage | None :
574
576
"""Shortcut for ``asyncio.Queue.get_nowait()``
575
577
without raising exceptions
576
578
"""
@@ -579,7 +581,7 @@ def get_message(self) -> Optional[NSQMessage]:
579
581
except asyncio .QueueEmpty :
580
582
return None
581
583
582
- async def wait_for_message (self ) -> Optional [ NSQMessage ] :
584
+ async def wait_for_message (self ) -> NSQMessage | None :
583
585
"""Shortcut for `asyncio.Queue.get()``.
584
586
585
587
:rtype: :class:`NSQMessage`
0 commit comments