Skip to main content
pyee
======

.. image:: https://travis-ci.org/eagleamon/pyee-topics.png
:target: https://travis-ci.org/eagleamon/pyee-topics

pyee supplies an ``EventEmitter`` object similar to the ``EventEmitter``
from Node.js.

There is also the possibility to use mqtt topic patterns to match events

Example:
--------

::

In [1]: from pyee import EventEmitter

In [2]: ee = EventEmitter()

In [3]: @ee.on('event')
...: def event_handler():
...: print 'BANG BANG'
...:

In [4]: ee.emit('event')
BANG BANG

In [5]:

In [6]: ee.on('a/+/c', lambda ...)

Easy-peasy.


Installation:
-------------

::

sudo pip install pyee

Methods:
--------

**ee.on(event, f=None)**: Registers the function ``f`` to the event name
``event``. Example::

ee.on('data', some_fxn)

If ``f`` is not specified, ``ee.on`` returns a function that takes ``f`` as a
callback, which allows for decorator styles::

@ee.on('data')
def data_handler(data):
print data

**ee.emit(event, *args, **kwargs)**: Emits the event, calling the attached functions
with ``*args``. For example::

ee.emit('data', '00101001')

This will call ``data('00101001')'`` (assuming ``data`` is an attached function).
Returns ``False`` if no functions are attached to handle the emission (otherwise ``True``).

**ee.once(event, f=None)**: The same as ``ee.on``, except that the listener
is automatically removed after it's called.

**ee.remove_listener(event, fxn)**: Removes the function ``fxn`` from ``event``.
Requires that the function is not closed over by ``ee.on`` (using this with the
decorator style is unfortunately not possible).

**ee.remove_all_listeners(event)**: Removes all listeners from ``event``.

**ee.listeners(event)**: Returns the array of all listeners registered to
the given ``event``.


(Special) Events:
-------

**"new_listener"**: Fires whenever a new listener is created. Listeners for this
event do not fire upon their own creation.

**"error"**: When emitted raises an Exception by default, behavior can be overriden by
attaching callback to the event. For example::

@ee.on('error')
def onError(message):
logging.err(message)

ee.emit('error', Exception('something blew up'))

Tests:
------

::

nosetests

License:
--------

MIT.

Release files for pyee-topics 0.0.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyee-topics 0.0.13
File Size Uploaded
pyee-topics-0.0.13.tar.gz 4.8 kB Details

Release files / pyee-topics-0.0.13.tar.gz

Download URL pyee-topics-0.0.13.tar.gz
Size 4.8 kB
Tags Source
SHA-256 checksum
How to use checksums
680a651a40e4c0547b7cd252c6f37f6eb53a6fe95cd769c53c66adc3ffff4539
BLAKE2b-256 checksum
How to use checksums
5efa109f0d5a0116bac4bc3999e5dda56e7c1b34bea5800c410a63445b2ae346
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.13 This release

1 release file

0.0.12

1 release file

0.0.11

1 release file

0.0.10

1 release file

0.0.9

1 release file

0.0.8

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page