Echo: Callback Properties in Python

Overview

Echo is a small Python module to create properties that you can attach callback functions to:

>>> from echo import CallbackProperty, add_callback

>>> class Switch(object):
...     state = CallbackProperty('off')

>>> def alert(value):
...     print("The switch is %s" % value)

>>> s = Switch()
>>> add_callback(s, 'state', alert)
>>> s.state
'off'
>>> s.state = 'on'
The switch is on
>>> s.state
'on'
>>> s.state = 'off'
The switch is off

The main features of Echo are:

  • A simple, property-like interface to monitor state changes
  • Decorator syntax to create callback property getter/setter methods, similar to @property
  • Context managers to delay or ignore callback events
  • Helper functions to connect callback properties to GUI elements (at the moment only Qt is supported)