While working on some changes for rose (an eventloop for tulip based on libuv) I realized the Handler class is a bit too coupled to the event loop implementation currently present in Tulip.
pyuv (and pyev, and probably others) provide timers already, so there is no need to implement them "manually" and keep a heap with them. This basically means that Handler objects will always have the 'when' value set to None, and the comparison functions don't really apply, moreover __eq__ would even be incorrect in its current form.
IMHO it would be good to have a base Handler class which doesn't take time into account and then a Timer class which does. Thoughts?
Also, I see that the PEP does mention the possibility of providing a __call__ method on the Handler class itself, which would basically call the callback and suppress exceptions (I guess by logging them). Was this ever discussed? Sounds like a good idea to me :-)