
    j                        d dl mZ d dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
mZ ddlmZ erd dlmZmZmZmZmZ d d	lmZ  G d
 d          Z G d de          ZdS )    )annotationsN)Iterator)TYPE_CHECKINGAny)PATTERN_CMDSCommand   )Wrapper)AsyncCallable_TCallbackKeyResult_TShortCallback)Backendc                  P    e Zd ZddZddZddZddZej        dd            Z	dS )CallbackMiddlewarereturnNonec                    i | _         d S N
_callbacks)selfs    c/DATA/AppData/hermes/projects/honcho/.venv/lib/python3.11/site-packages/cashews/wrapper/callback.py__init__zCallbackMiddleware.__init__   s    /1    callr   cmdr   backendr   r   c                   K    ||i | d {V }| j         s|S |t          v rdnd}|                    |          }|||S | j                                         D ]}	 |	||||           d {V  |S )Npatternkey)r"   resultr   )r   r   getvalues)
r   r   r   r   argskwargsr#   as_keyr"   callbacks
             r   __call__zCallbackMiddleware.__call__   s      tT,V,,,,,,,, 	M!\11ujj  ;&.M..00 	I 	IH(3CHHHHHHHHHHHr   r)   r   namestrc                    || j         |<   d S r   r   r   r)   r+   s      r   add_callbackzCallbackMiddleware.add_callback!   s     (r   c                    | j         |= d S r   r   )r   r+   s     r   remove_callbackz"CallbackMiddleware.remove_callback$   s    OD!!!r   Iterator[None]c              #     K   t          j                    j        }|                     ||           	 d V  |                     |           d S # |                     |           w xY wr   )uuiduuid4hexr/   r1   r.   s      r   r)   zCallbackMiddleware.callback'   sl      z||(D)))	'EEE  &&&&&D  &&&&s   A A$N)r   r   )r   r   r   r   r   r   r   r   )r)   r   r+   r,   r   r   )r+   r,   r   r   )r)   r   r   r2   )
__name__
__module____qualname__r   r*   r/   r1   
contextlibcontextmanagerr)    r   r   r   r      s        2 2 2 2
 
 
 
) ) ) )" " " " ' ' ' ' ' 'r   r   c                  D     e Zd Zdd fdZej        dd            Z xZS )CallbackWrapper r+   r,   c                    t                                          |           t                      | _        |                     | j                   d S r   )superr   r   	callbacksadd_middleware)r   r+   	__class__s     r   r   zCallbackWrapper.__init__2   sD    +--DN+++++r   r)   r   r   r   r   r2   c              #     K   |dfd}| j                             |          5  d V  d d d            d S # 1 swxY w Y   d S )Nr   r   r"   r   r#   r   r   r   r   r   c                6   K   | k    r ||           d S d S )N)r#   r<   )r   r"   r#   r   r)   t_cmds       r   _wrapped_callbackz3CallbackWrapper.callback.<locals>._wrapped_callback;   s2      e||V,,,,,, |r   )
r   r   r"   r   r#   r   r   r   r   r   )rB   r)   )r   r)   r   rH   rG   s    `  @r   r)   zCallbackWrapper.callback7   s      	- 	- 	- 	- 	- 	- 	- ^$$%677 	 	EEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   :>>)r?   )r+   r,   )r)   r   r   r   r   r2   )r7   r8   r9   r   r:   r;   r)   __classcell__)rD   s   @r   r>   r>   1   sf        , , , , , , ,
        r   r>   )
__future__r   r:   r4   collections.abcr   typingr   r   cashews.commandsr   r   wrapperr
   cashews._typingr   r   r   r   r   cashews.backends.interfacer   r   r>   r<   r   r   <module>rQ      s!   " " " " " "      $ $ $ $ $ $ % % % % % % % % 2 2 2 2 2 2 2 2       3WWWWWWWWWWWWWW222222' ' ' ' ' ' ' '@    g     r   