
    i                     *    d Z ddlZdgZi ZddZ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                      | f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                 &    t          | d          S )NT)r   )funcevent_classs    B/usr/local/lib/python3.11/dist-packages/zope/event/classhandler.py<lambda>zhandler.<locals>.<lambda>;   s    GKt<<     )registryzopeeventsubscribersappenddispatchr   )r   handler_
_decorators   `  r   r   r   4   s     <<<<< 0
%%h///(""!)
$$X...  r
   c                 v    | j         j        D ]+}t                              |d          D ]} ||            ,d S )N )	__class____mro__r   get)r   r   r   s      r   r   r   I   sQ    .  ||K44 	 	GGENNNN	 r
   )NF)__doc__
zope.eventr   __all__r   r   r   r   r
   r   <module>r      s^   ( (R         *    r
   