#! /usr/bin/env python
from __future__ import print_function
from pydispatch import dispatcher
SIGNAL = 'my-first-signal'
SIGNAL2 = 'my-second-signal'

def handle_event( sender ):
    """Simple event handler"""
    print('Signal was sent by', sender)
dispatcher.connect( handle_event, signal=SIGNAL, sender=dispatcher.Any )
def handle_specific_event( sender, moo ):
    """Handle a simple event, requiring a "moo" parameter"""
    print('Specialized event for %(sender)s moo=%(moo)r'%locals())
dispatcher.connect( handle_specific_event, signal=SIGNAL2, sender=dispatcher.Any )

first_sender = object()
second_sender = {}
def main( ):
    dispatcher.send( signal=SIGNAL, sender=first_sender )
    dispatcher.send( signal=SIGNAL, sender=second_sender )
    dispatcher.send( signal=SIGNAL2, sender=second_sender, moo='this' )

if __name__ == "__main__":
    main()