Metadata-Version: 1.1
Name: gevent-eventemitter
Version: 2.1
Summary: Implements EventEmitter using gevent
Home-page: https://github.com/rossengeorgiev/gevent-eventemitter
Author: Rossen Georgiev
Author-email: rossen@rgp.io
License: MIT
Description: EventEmitter with gevent
        ~~~~~~~~~~~~~~~~~~~~~~~~
        
        |pypi| |coverage| |master_build|
        
        This module implements EventEmitter with gevent.
        
        Installation
        ============
        
        To install the latest release from ``pypi``::
        
            pip install gevent-eventemitter
        
        Usage
        =====
        
        ``EventEmitter`` can be used as mixin, or on it's own. Here is an example as mixin:
        
        .. code:: python
        
            from eventemitter import EventEmitter
        
            class MyClass(EventEmitter):
                pass
        
            instance = MyClass()
        
        
        Registering a callback
        
        .. code:: python
        
            def do_stuff():
                print "Hello world!"
        
            instance.on('my event', do_stuff)
        
            instance.emit('my event')
        
        Or as decorator
        
        .. code:: python
        
            @instance.on('my event')
            def do_stuff():
                print "Hello world!"
        
        With ``once`` the callback will be called, you guessed it, only once.
        
        .. code:: python
        
            @instance.once('my event')
            def do_stuff(var):
                print "Hello %s!" % var
        
            instance.emit('my event', 'Earth')  # arguments can be passed along events
            instance.emit('my event')  # do_stuff won't be called
        
        It's possible to block wait for an event.
         If there are event arguments they will be returned as a ``tuple``
        
        .. code:: python
        
            my_args = instance.wait_event('my event')
            my_args = instance.wait_event('my event', timeout=5)  # wait at most 5seconds
        
        On timeout ``wait_event`` will return ``None``, or raise ``gevent.Timeout`` if ``raises=True``
        
        .. code:: python
        
            my_args = instance.wait_event('my event', timeout=5)
            if my_args is None:
                print "Timeout!"
        
            try:
                my_args = instance.wait_event('my event', timeout=5, raises=True)
            except gevent.Timeout:
                print "Timeout!"
        
        To remove a callback, or all callbacks.
        
        .. code:: python
        
            instance.remove_listener('my event', do_stuff)
            instance.remove_all_listeners()                 # absolutely all listeners
            instance.remove_all_listeners('my event')       # all listners for the event
        
        Listening for ``None`` event will result in catching all events.
        
        
        .. |pypi| image:: https://img.shields.io/pypi/v/gevent-eventemitter.svg?style=flat&label=latest%20version
            :target: https://pypi.python.org/pypi/gevent-eventemitter
            :alt: Latest version released on PyPi
        
        .. |coverage| image:: https://img.shields.io/coveralls/rossengeorgiev/gevent-eventemitter/master.svg?style=flat
            :target: https://coveralls.io/r/rossengeorgiev/gevent-eventemitter?branch=master
            :alt: Test coverage
        
        .. |master_build| image:: https://img.shields.io/travis/rossengeorgiev/gevent-eventemitter/master.svg?style=flat&label=master%20build
            :target: http://travis-ci.org/rossengeorgiev/gevent-eventemitter
            :alt: Build status of master branch
        
        
Keywords: gevent event emitter ee greenlet
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
