
    k7i;                     b    S SK r S SKJr  S SKJrJr  S SKJr  S SKJ	r	  S SK
Jr   " S S\5      rg)	    N)Sequence)AnySupportsFloat)override)AsyncKeyValue)BaseWrapperc                   |  ^  \ rS rSrSr SS\S\SS4U 4S jjjr\SS.S	\	S
\	S-  S\
\	\4   S-  4S jj5       r\SS.S\\	   S
\	S-  S\\
\	\4   S-     4S jj5       r\SS.S	\	S
\	S-  S\\
\	\4   S-  \S-  4   4S jj5       r\SS.S\\	   S
\	S-  S\\\
\	\4   S-  \S-  4      4S jj5       r\SSS.S	\	S\
\	\4   S
\	S-  S\S-  SS4
S jj5       r\SSS.S\\	   S\\
\	\4      S
\	S-  S\\S-     S-  SS4
S jj5       r\SS.S	\	S
\	S-  S\4S jj5       r\SS.S\\	   S
\	S-  S\4S jj5       rSrU =r$ )TimeoutWrapper   a%  Wrapper that adds timeout limits to all operations.

This wrapper ensures that no operation takes longer than the specified timeout.
If an operation exceeds the timeout, it raises asyncio.TimeoutError. This is useful
for preventing operations from hanging indefinitely and for enforcing SLAs.
	key_valuetimeoutreturnNc                 :   > Xl         X l        [        TU ]  5         g)zInitialize the timeout wrapper.

Args:
    key_value: The store to wrap.
    timeout: Timeout in seconds for all operations. Defaults to 5.0 seconds.
N)r   r   super__init__)selfr   r   	__class__s      `/home/james-whalen/.local/lib/python3.13/site-packages/key_value/aio/wrappers/timeout/wrapper.pyr   TimeoutWrapper.__init__   s     )2%    )
collectionkeyr   c                   #    [         R                  " U R                  R                  XS9U R                  S9I S h  vN $  N7fN)r   r   r   )asynciowait_forr   getr   r   r   r   s      r   r   TimeoutWrapper.get#   7     %%dnn&8&8S&8&Xbfbnbnoooo   :AAAkeysc                   #    [         R                  " U R                  R                  XS9U R                  S9I S h  vN $  N7fN)r#   r   r   )r   r   r   get_manyr   r   r#   r   s      r   r&   TimeoutWrapper.get_many'   7     %%dnn&=&=4&=&_imiuiuvvvvr"   c                   #    [         R                  " U R                  R                  XS9U R                  S9I S h  vN $  N7fr   )r   r   r   ttlr   r   s      r   r+   TimeoutWrapper.ttl+   r!   r"   c                   #    [         R                  " U R                  R                  XS9U R                  S9I S h  vN $  N7fr%   )r   r   r   ttl_manyr   r'   s      r   r.   TimeoutWrapper.ttl_many/   r)   r"   )r   r+   valuer+   c          	         #    [         R                  " U R                  R                  XX4S9U R                  S9I S h  vN $  N7f)N)r   r0   r   r+   r   )r   r   r   putr   )r   r   r0   r   r+   s        r   r2   TimeoutWrapper.put3   sN     %%dnn&8&8SZd&8&nx|  yE  yE  F  F  	F  F   ;AAAvaluesc          	         #    [         R                  " U R                  R                  XX4S9U R                  S9I S h  vN $  N7f)N)r#   r5   r   r+   r   )r   r   r   put_manyr   )r   r#   r5   r   r+   s        r   r7   TimeoutWrapper.put_many7   sD      %%NN###]gkgsgs
 
 	
 
r4   c                   #    [         R                  " U R                  R                  XS9U R                  S9I S h  vN $  N7fr   )r   r   r   deleter   r   s      r   r:   TimeoutWrapper.deleteD   s7     %%dnn&;&;&;&[eieqeqrrrrr"   c                   #    [         R                  " U R                  R                  XS9U R                  S9I S h  vN $  N7fr%   )r   r   r   delete_manyr   r'   s      r   r=   TimeoutWrapper.delete_manyH   s7     %%dnn&@&@d&@&blplxlxyyyyr"   )r   r   )g      @)__name__
__module____qualname____firstlineno____doc__r   floatr   r   strdictr   r   listr&   tupler+   r.   r   r2   r   r7   boolr:   intr=   __static_attributes____classcell__)r   s   @r   r
   r
      s       
	   >B pS pt ptCQTH~X\G\ p p JN w49 wS4Z wSWX\]`be]eXfimXmSn w w >B pS pt puTRUWZRZ^^bMbdilpdpMpGq p p JN w49 wS4Z wSWX]^bcfhkck^los^suz  ~B  vB  _B  YC  TD w w UYw{ FS Fc3h Fd
 F`mpt`t F  AE F F  "&59

3i

 c3h(


 $J

 md*+d2

 


 

 AE s sC$J s$ s s MQ zd3i zd
 zVY z zr   r
   )r   collections.abcr   typingr   r   typing_extensionsr   !key_value.aio.protocols.key_valuer   key_value.aio.wrappers.baser   r
    r   r   <module>rS      s%     $ % & ; 3?z[ ?zr   