<p>I need to allow other Python applications to register callback functions for events in my application.  These need to have priorities associated with them (so a callback with a priority of 10 runs before a callback with a priority of 1) and callback functions need to be able to signal errors to the dispatcher.</p>

<p>These are all lightweight callbacks running in the same process, so I don't need to send signals across process boundaries.</p>

<p>Is there a good Python library to handle this, or do I need to write my own?</p>

Are these other applications running in another address space? If so, you'll need to use an interprocess communication library like
D-BUS
.
If you're just sending signals in the same process, try
PyDispatcher