3 (ƒÄV÷ã@s&dZddlZiZddd„Zdd„ZdS) 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): ... def __repr__(self): ... return self.__class__.__name__ >>> def handler1(event): ... print("handler1 %r" % event) >>> zope.event.classhandler.handler(MyEvent, handler1) Descriptor syntax: >>> @zope.event.classhandler.handler(MyEvent) ... def handler2(event): ... print("handler2 %r" % event) >>> class MySubEvent(MyEvent): ... pass >>> @zope.event.classhandler.handler(MySubEvent) ... def handler3(event): ... print("handler3 %r" % event) 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 éNFcsT|dkr‡fdd„Sts&tjjjtƒˆtkr:|gtˆ<ntˆj|ƒ|rPtSdS)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. Ncs tˆ|dƒS)NT)Úhandler)Úfunc)Ú event_class©ú"/usr/lib/python3.6/classhandler.pyÚ6szhandler..)ÚregistryÚzopeÚeventZ subscribersÚappendÚdispatchr)rZhandler_Z decoratorr)rrr/s  rcCs4x.|jjD]"}xtj|fƒD] }||ƒqWq WdS)N)Ú __class__Ú__mro__rÚget)r rrrrrr Csr )NF)Ú__doc__Z zope.eventr rrr rrrrÚ*s