Welcome to Tyuio’s documentation!

Contents:

Tyuio is a Simple Event Dispatcher api

@author: Moises P. Sena <moisespsena@gmail.com>

class tyuio.Event(event_type)[source]

Bases: object

Generic Event object to use with EventDispatcher.

Example:

>>> dispatcher = EventDispatcher()
>>> def callback(e, *args, **kwargs):
...     print(e.type)
>>> dispatcher.add_event_listener("my_type", callback)
<EventDispatcher()>
>>> dispatcher.dispatch(Event("my_type"))
my_type
<Event('my_type')>
current_target[source]

Return last target object in self.targets list. :return: The target object

source_target[source]

Return first target object in self.targets list. :return: The target object

class tyuio.EventDispatcher(target=None)[source]

Bases: object

Generic event dispatcher which listen and dispatch events

Examples:

>>> d = EventDispatcher()

or

>>> class Target(object):
...     def __repr__(self):
...         return '<%s object>' % self.__class__.__name__
>>> d = EventDispatcher(Target())
>>> d.target
<Target object>

Add listeners:

>>> def callback(e, *args, **kwargs):
...     pass
>>> d.add_event_listener('my_event', callback)
<EventDispatcher(target=<Target object>)>
>>> d.add_event_listeners('my_event', callback, callback)
<EventDispatcher(target=<Target object>)>
>>> d.add_events_listeners(('my_event', [callback, callback]))
<EventDispatcher(target=<Target object>)>
>>> d.add_events_listeners(('my_event', [callback, callback]),     ('another_event', [callback, callback]))
<EventDispatcher(target=<Target object>)>
add_event_listener(event_type, listener)[source]

Add one listener at event type

Parameters:
  • event_type – The event type
  • listener – The listener
Returns:

the self object

Example:

>>> d = EventDispatcher()
>>> def callback(e, *args, **kwargs):
...     pass
>>> d.add_event_listener('my_event', callback)
<EventDispatcher()>
add_event_listeners(event_type, *listeners)[source]

Add one or more listeners at event type

Parameters:
  • event_type – The event type
  • listeners – The listener list
Returns:

the self object

Example:

>>> d = EventDispatcher()
>>> def callback(e, *args, **kwargs):
...     pass
>>> d.add_events_listeners('my_event', [callback, callback])
<EventDispatcher()>
add_events_listeners(*types_with_listeners)[source]

Add multiples listeners on varios events types.

Parameters:types_with_listeners – tuples of (event_type, listeners)
Returns:the self object

Example:

>>> d = EventDispatcher()
>>> def callback(e, *args, **kwargs):
...     pass
>>> d.add_events_listeners(('my_event', [callback, callback]), ('another_event', [callback, callback]))
<EventDispatcher()>
dispatch(event, *args, **kwargs)[source]

Dispatch all listeners of event.type

Parameters:
  • event – The event object
  • args – Args to pass at listener function
  • kwargs – Keyword args to pass at listener function
Returns:

the event object

>>> dispatcher = EventDispatcher()
>>> def callback(e, *args, **kwargs):
...     print(e.type)
>>> dispatcher.add_event_listener("my_type", callback)
<EventDispatcher()>
>>> dispatcher.dispatch(Event("my_type"))
my_type
<Event('my_type')>
has_listener(event_type, listener)[source]

Check if dispatch contains the listener of event_type event type. :param event_type: The event type :param listener: The listener callback :return: True if contains, other else, False

on(event_type, listener)

Add one listener at event type

Parameters:
  • event_type – The event type
  • listener – The listener
Returns:

the self object

Example:

>>> d = EventDispatcher()
>>> def callback(e, *args, **kwargs):
...     pass
>>> d.add_event_listener('my_event', callback)
<EventDispatcher()>
remove_all_listeners()[source]

Remove all events listeners :return: the self object

remove_event_listener(event_type, listener)[source]

Remove one listener at event type

Parameters:
  • event_type – The event type
  • listener – The listener
Returns:

the self object

Example:

>>> d = EventDispatcher()
>>> def callback(e, *args, **kwargs):
...     pass
>>> d.remove_event_listener('my_event', callback)
<EventDispatcher()>
remove_event_listeners(event_type, *listeners)[source]

Remove one or more listeners at event type

Parameters:
  • event_type – The event type
  • listeners – The listener list
Returns:

the self object

Example:

>>> d = EventDispatcher()
>>> def callback(e, *args, **kwargs):
...     pass
>>> d.remove_events_listeners('my_event', [callback, callback])
<EventDispatcher()>
remove_events_listeners(*types_with_listeners)[source]

Removes multiples listeners on varios events types.

Parameters:types_with_listeners – tuples of (event_type, listeners)
Returns:the self object

Example:

>>> d = EventDispatcher()
>>> def callback(e, *args, **kwargs):
...     pass
>>> d.remove_events_listeners(('my_event', [callback, callback]),('another_event', [callback, callback]))
<EventDispatcher()>
target[source]
class tyuio.EventType(evcls, evtype)[source]

Bases: object

The Event Type

class tyuio.Listener[source]

Bases: object

Listener interface

tyuio.is_iter(obj)[source]

Check if obj contains ‘__iter__’ attribute :param obj: the object of check :return: True if contains, other else, False

Indices and tables

Table Of Contents

This Page