PyDispatcher provides the Python programmer
with a multiple-producer-multiple-consumer signal-registration and
routing infrastructure for use in multiple contexts. The
mechanism
of PyDispatcher started life as a highly rated recipe
in the Python
Cookbook. The SourceForge project aims
to include various enhancements to the recipe developed during use in
various applications.
To be more concrete about what PyDispatcher does for you:
The dispatcher mechanism is particularly useful when constructing Model-View-Controller style applications where it is not desirable to have the Model objects aware of the event model.
PyDispatcher is available as a standard Python distutils
installation package from the SourceForge project file
repository. To install, unzip the source archive into a
temporary directory and run:
python setup.py install
PyDispatcher does not include any binary packages, so there should
be no issues in installation. To use the CVS version of
PyDispatcher (useful for developers of PyDispatcher), simply check out
the module to a directory on your PythonPath.
PyDispatcher represents one of the more involved
usage patterns for Python weakref objects. We have discovered a few
problems in weakref operation of which users of the package should be
aware.
Python 2.2.2 (and
earlier) weak reference implementations have a subtle bug
in their weakref destructor code which can cause memory access errors
(aka segfaults) on program shutdown. If you are using Python 2.2,
it is strongly
recommended that you use Python 2.2.3 or
later
when using PyDispatcher. Note that this will not address the
following issue.
Python 2.3.2 (and earlier) has a different (even more subtle) bug in the weakref destructor code which, again, can cause segfaults. If you are using Python 2.3, it is strongly recommended that you use Python 2.3.3 or later when using PyDispatcher. This bug-fix will not be ported back to the Python 2.2.x branch, so if you are using Python 2.2.3 you may encounter this situation.
You can find usage samples in the examples directory of the
distribution. The dispatcher module's reference documentation is
currently the major source of information regarding usage.
PyDispatcher welcomes contributions, suggestions, and feedback from
users in the pydispatcher-dev mailing
list.