o
    +×¾g  ã                   @   s,   d Z ddlZdgZi Zddd„Zdd„ ZdS )	aö  Class-based event handlers


A light-weight event-handler framework based on event classes.

Handlers are registered for event classes:

    >>> import zope.event.classhandler

    >>> class MyEvent(object):
    ...     pass

    >>> def handler1(event):
    ...     print("handler1 %r" % event.__class__.__name__)

    >>> zope.event.classhandler.handler(MyEvent, handler1)

Descriptor syntax:

    >>> @zope.event.classhandler.handler(MyEvent)
    ... def handler2(event):
    ...     print("handler2 %r" % event.__class__.__name__)

    >>> class MySubEvent(MyEvent):
    ...     pass

    >>> @zope.event.classhandler.handler(MySubEvent)
    ... def handler3(event):
    ...     print("handler3 %r" % event.__class__.__name__)


Subscribers are called in class method-resolution order, so only
new-style event classes are supported, and then by order of registry.

    >>> import zope.event
    >>> zope.event.notify(MySubEvent())
    handler3 'MySubEvent'
    handler1 'MySubEvent'
    handler2 'MySubEvent'

é    NÚhandlerFc                    sT   |du r
‡ fdd„S t stjj t¡ ˆ t vr|gt ˆ < nt ˆ   |¡ |r(tS dS )z¯ Define an event handler for a (new-style) class.

    This can be called with a class and a handler, or with just a
    class and the result used as a handler decorator.
    Nc                    s   t ˆ | dƒS )NT)r   )Úfunc©Úevent_class© úa/var/www/html/backend_erp/backend_erp_env/lib/python3.10/site-packages/zope/event/classhandler.pyÚ<lambda>;   s    zhandler.<locals>.<lambda>)ÚregistryÚzopeÚeventÚsubscribersÚappendÚdispatchr   )r   Úhandler_Ú
_decoratorr   r   r   r   4   s   ÿc                 C   s,   | j jD ]}t |d¡D ]}|| ƒ qqd S )Nr   )Ú	__class__Ú__mro__r	   Úget)r   r   r   r   r   r   r   I   s
   
ÿÿr   )NF)Ú__doc__Ú
zope.eventr
   Ú__all__r	   r   r   r   r   r   r   Ú<module>   s    )ÿ
