Ë
    ö­¦j]  ã                  óL   — d dl mZ d dlmZ d dlmZ ddlmZmZ  G d„ d«      Z	y)	é    )Úannotations)ÚCallable)ÚAnyé   )ÚCallbackTypeÚHandlerObjectc                  ó0   — e Zd ZdZdd„Zdd„Zd	d„Zd
d„Zy)ÚEventObserveran  
    Simple events observer

    Is used for managing events is not related with Telegram
    (For example startup/shutdown processes)

    Handlers can be registered via decorator or method

    .. code-block:: python

        <observer>.register(my_handler)

    .. code-block:: python

        @<observer>()
        async def my_handler(*args, **kwargs): ...
    c                ó   — g | _         y ©N)Úhandlers)Úselfs    úQ/var/www/html/venv/lib/python3.12/site-packages/aiogram/dispatcher/event/event.pyÚ__init__zEventObserver.__init__   s	   € Ø-/ˆ�ó    c                óN   — | j                   j                  t        |¬«      «       y)z0
        Register callback with filters
        )ÚcallbackN)r   Úappendr   )r   r   s     r   ÚregisterzEventObserver.register   s   € ð 	�‰×Ñœ]°HÔ=Õ>r   c              �  óf   K  — | j                   D ]  } |j                  |i |¤Žƒ d{  –—†  Œ y7 Œ­w)zk
        Propagate event to handlers.
        Handler will be called when all its filters is pass.
        N)r   Úcall)r   ÚargsÚkwargsÚhandlers       r   ÚtriggerzEventObserver.trigger%   s7   è ø€ ð
 —}‘}ò 	0ˆGØ�'—,‘, Ð/¨Ñ/×/Ñ/ñ	0Ø/ús   ‚%1§/¨1c                ó   ‡ — dˆ fd„}|S )z:
        Decorator for registering event handlers
        c                ó*   •— ‰j                  | «       | S r   )r   )r   r   s    €r   Úwrapperz'EventObserver.__call__.<locals>.wrapper2   s   ø€ Ø�M‰M˜(Ô#ØˆOr   )r   r   Úreturnr   © )r   r   s   ` r   Ú__call__zEventObserver.__call__-   s   ø€ õ
	ð ˆr   N)r   ÚNone)r   r   r   r"   )r   r   r   r   r   r"   )r   z&Callable[[CallbackType], CallbackType])Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r!   r    r   r   r
   r
   	   s   „ ñó$0ó?ó0ô	r   r
   N)
Ú
__future__r   Úcollections.abcr   Útypingr   r   r   r   r
   r    r   r   ú<module>r*      s   ðÝ "å $Ý ç 0÷-ò -r   