EventSource

class tfsnippet.utils.EventSource(allowed_event_keys=None)

Bases: object

An object that may trigger events.

This class is designed to either be the parent of another class, or be a member of another object. For example:

def event_handler(**kwargs):
    print('event triggered: args {}, kwargs {}'.format(args, kwargs))

# use alone
class SomeObject(EventSource):

    def func(self, **kwargs):
        self.fire('some_event', **kwargs)

obj = SomeObject()
obj.on('some_event', event_handler)

# use as a member
class SomeObject(object):

    def __init__(self):
        self.events = EventSource()

    def func(self, **kwargs):
        self.events.fire('some_event', **kwargs)

obj = SomeObject()
obj.events.on('some_event', event_handler)

Methods Summary

clear_event_handlers([event_key]) Clear all event handlers.
fire(event_key, *args, **kwargs) Fire an event.
off(event_key, handler) De-register an event handler.
on(event_key, handler) Register a new event handler.
reverse_fire(event_key, *args, **kwargs) Fire an event, call event handlers in reversed order of registration.

Methods Documentation

clear_event_handlers(event_key=None)

Clear all event handlers.

Parameters:event_key (str or None) – If specified, clear all event handlers of this name. Otherwise clear all event handlers.
fire(event_key, *args, **kwargs)

Fire an event.

Parameters:
  • event_key (str) – The event key.
  • *args – Arguments to be passed to the event handler.
  • **kwargs – Named arguments to be passed to the event handler.
Raises:

KeyError – If event_key is not allowed.

off(event_key, handler)

De-register an event handler.

Parameters:
  • event_key (str) – The event key.
  • handler ((*args, **kwargs) -> any) – The event handler.
Raises:

ValueError – If handler is not a registered event handler of the specified event event_key.

on(event_key, handler)

Register a new event handler.

Parameters:
  • event_key (str) – The event key.
  • handler ((*args, **kwargs) -> any) – The event handler.
Raises:

KeyError – If event_key is not allowed.

reverse_fire(event_key, *args, **kwargs)

Fire an event, call event handlers in reversed order of registration.

Parameters:
  • event_key (str) – The event key.
  • *args – Arguments to be passed to the event handler.
  • **kwargs – Named arguments to be passed to the event handler.
Raises:

KeyError – If event_key is not allowed.