{ "info": { "author": "Rossen Georgiev", "author_email": "rossen@rgp.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "EventEmitter with gevent\n~~~~~~~~~~~~~~~~~~~~~~~~\n\n|pypi| |coverage| |master_build|\n\nThis module implements EventEmitter with gevent.\n\nInstallation\n============\n\nTo install the latest release from ``pypi``::\n\n pip install gevent-eventemitter\n\nUsage\n=====\n\n``EventEmitter`` can be used as mixin, or on it's own. Here is an example as mixin:\n\n.. code:: python\n\n from eventemitter import EventEmitter\n\n class MyClass(EventEmitter):\n pass\n\n instance = MyClass()\n\n\nRegistering a callback\n\n.. code:: python\n\n def do_stuff():\n print \"Hello world!\"\n\n instance.on('my event', do_stuff)\n\n instance.emit('my event')\n\nOr as decorator\n\n.. code:: python\n\n @instance.on('my event')\n def do_stuff():\n print \"Hello world!\"\n\nWith ``once`` the callback will be called, you guessed it, only once.\n\n.. code:: python\n\n @instance.once('my event')\n def do_stuff(var):\n print \"Hello %s!\" % var\n\n instance.emit('my event', 'Earth') # arguments can be passed along events\n instance.emit('my event') # do_stuff won't be called\n\nIt's possible to block wait for an event.\n If there are event arguments they will be returned as a ``tuple``\n\n.. code:: python\n\n my_args = instance.wait_event('my event')\n my_args = instance.wait_event('my event', timeout=5) # wait at most 5seconds\n\nOn timeout ``wait_event`` will return ``None``, or raise ``gevent.Timeout`` if ``raises=True``\n\n.. code:: python\n\n my_args = instance.wait_event('my event', timeout=5)\n if my_args is None:\n print \"Timeout!\"\n\n try:\n my_args = instance.wait_event('my event', timeout=5, raises=True)\n except gevent.Timeout:\n print \"Timeout!\"\n\nTo remove a callback, or all callbacks.\n\n.. code:: python\n\n instance.remove_listener('my event', do_stuff)\n instance.remove_all_listeners() # absolutely all listeners\n instance.remove_all_listeners('my event') # all listners for the event\n\nListening for ``None`` event will result in catching all events.\n\n\n.. |pypi| image:: https://img.shields.io/pypi/v/gevent-eventemitter.svg?style=flat&label=latest%20version\n :target: https://pypi.python.org/pypi/gevent-eventemitter\n :alt: Latest version released on PyPi\n\n.. |coverage| image:: https://img.shields.io/coveralls/rossengeorgiev/gevent-eventemitter/master.svg?style=flat\n :target: https://coveralls.io/r/rossengeorgiev/gevent-eventemitter?branch=master\n :alt: Test coverage\n\n.. |master_build| image:: https://img.shields.io/travis/rossengeorgiev/gevent-eventemitter/master.svg?style=flat&label=master%20build\n :target: http://travis-ci.org/rossengeorgiev/gevent-eventemitter\n :alt: Build status of master branch\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rossengeorgiev/gevent-eventemitter", "keywords": "gevent event emitter ee greenlet", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "gevent-eventemitter", "package_url": "https://pypi.org/project/gevent-eventemitter/", "platform": "", "project_url": "https://pypi.org/project/gevent-eventemitter/", "project_urls": { "Homepage": "https://github.com/rossengeorgiev/gevent-eventemitter" }, "release_url": "https://pypi.org/project/gevent-eventemitter/2.1/", "requires_dist": [ "gevent (>=1.3)" ], "requires_python": "", "summary": "Implements EventEmitter using gevent", "version": "2.1" }, "last_serial": 5348411, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "ebd0396fbd19a5bd85e3ccea3f43e645", "sha256": "6716986b4c554ac026f0150392a8f403306cd936074a1cdc1bbc2d67eaede504" }, "downloads": -1, "filename": "gevent_eventemitter-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ebd0396fbd19a5bd85e3ccea3f43e645", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5343, "upload_time": "2016-02-14T16:49:22", "url": "https://files.pythonhosted.org/packages/6f/f3/d79053bab3516d62b32b300c00c75ea4ff6295049e9b7f93ac58044bb29d/gevent_eventemitter-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f13c3d27f96014986777da98ff66476a", "sha256": "becde97ab8e50b593a0889111a587fac9b11170f66bee5f7890e95604b09ac02" }, "downloads": -1, "filename": "gevent-eventemitter-1.0.tar.gz", "has_sig": false, "md5_digest": "f13c3d27f96014986777da98ff66476a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3335, "upload_time": "2016-02-14T08:29:15", "url": "https://files.pythonhosted.org/packages/82/1f/4f1a66c6ff86d8abfebebedf7b2cbd92995c53c9282d1c783572d0025005/gevent-eventemitter-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "b21838583b49f1f61171aa62fa23dd7f", "sha256": "ad125967fd88b57af88f5dcaef252cc00a7e1c6aa85b3d423447e8ee00aee6b6" }, "downloads": -1, "filename": "gevent_eventemitter-1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b21838583b49f1f61171aa62fa23dd7f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5597, "upload_time": "2016-02-14T20:43:24", "url": "https://files.pythonhosted.org/packages/4f/d1/c771b8aa874c49ffa9f49b0410d07a2bbea33e36f72ec041fd9e3a743b39/gevent_eventemitter-1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9e786010d5552df31bf6afad774144e6", "sha256": "afae7d527c52a29123988fd5b5770cdfb30eb660b53d5612f067a00f081ec1f4" }, "downloads": -1, "filename": "gevent-eventemitter-1.1.tar.gz", "has_sig": false, "md5_digest": "9e786010d5552df31bf6afad774144e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3502, "upload_time": "2016-02-14T20:43:28", "url": "https://files.pythonhosted.org/packages/25/ab/5408c12ac896ed586d25477f6927e02714066afe1c3594348d48518da58b/gevent-eventemitter-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "813cc682814238806a6b76edd5953c0f", "sha256": "2e924575da2748dab217f78dc401f47f026671d2febed43eba4f4fa3c6544a4d" }, "downloads": -1, "filename": "gevent_eventemitter-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "813cc682814238806a6b76edd5953c0f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5602, "upload_time": "2016-02-28T10:44:56", "url": "https://files.pythonhosted.org/packages/99/92/e3bc91fc903a75ccd9b804dd5b49600f47f2336f0569289bbd967c160c95/gevent_eventemitter-1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d8b0594867f9cd62f041e243b18126f", "sha256": "e8d73abf8b85538247d2228aa2f77f957f4f8be4de3d292c1c19dd67aa94df27" }, "downloads": -1, "filename": "gevent-eventemitter-1.2.tar.gz", "has_sig": false, "md5_digest": "0d8b0594867f9cd62f041e243b18126f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3516, "upload_time": "2016-02-28T10:45:01", "url": "https://files.pythonhosted.org/packages/ce/63/69870edd7c78d1c2e3e08c72af965f13f014ff8c85d025c8d3e36a123ec5/gevent-eventemitter-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "4a100d4d1c8128ed722afe0959c15ad4", "sha256": "a701c6a9b3f2d78506a50bdaee00d38413afc72e61d7255d586ff9285ad14028" }, "downloads": -1, "filename": "gevent_eventemitter-1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4a100d4d1c8128ed722afe0959c15ad4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5633, "upload_time": "2016-03-06T18:20:52", "url": "https://files.pythonhosted.org/packages/4f/66/eeb8dee07b2f48cab0718a567221bdc7ba98aec971576b346c9ebc5a9734/gevent_eventemitter-1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ce58ac2ad97a3c8637cfb4357145f22", "sha256": "7321b5b301faf6ee4238f2a71290f350d70cec1544823761d709ee3dbe66d56d" }, "downloads": -1, "filename": "gevent-eventemitter-1.3.tar.gz", "has_sig": false, "md5_digest": "9ce58ac2ad97a3c8637cfb4357145f22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3538, "upload_time": "2016-03-06T18:21:00", "url": "https://files.pythonhosted.org/packages/77/ef/8b9e3e692dd0cc3ff060623e609397eacac8ed171f97b1e629f8d2c4d350/gevent-eventemitter-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "1598f10fde3648175bdf4ddf586408c0", "sha256": "9592a2e810d4e1688921aa7aa6c01e5aacc9e72e2d6ccabd9d2afbad1165ca4c" }, "downloads": -1, "filename": "gevent_eventemitter-1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1598f10fde3648175bdf4ddf586408c0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5706, "upload_time": "2016-04-14T10:22:53", "url": "https://files.pythonhosted.org/packages/b9/bb/22d2c71eb1278dfc938bb831c24ae191c8f029700cc5091752290e04c43b/gevent_eventemitter-1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61498bf0bfe8445ce80ac11f4366c54b", "sha256": "3fce3f702c01f9c7a87257388b605ed1a93c949562b23af62881011ba25b72b3" }, "downloads": -1, "filename": "gevent-eventemitter-1.4.tar.gz", "has_sig": false, "md5_digest": "61498bf0bfe8445ce80ac11f4366c54b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3585, "upload_time": "2016-04-14T10:22:59", "url": "https://files.pythonhosted.org/packages/26/36/5bbe6d5428000386b0a8821acc3e8dbb488120377c03841cd4708c1763fa/gevent-eventemitter-1.4.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "1d083d90b2aec71aa37a93609e8fa7c9", "sha256": "5e8e3b584937ae1fa8ad4f4eec6d9f8955c8f04d8a7c2a023c7c65229ee6c9c9" }, "downloads": -1, "filename": "gevent_eventemitter-2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1d083d90b2aec71aa37a93609e8fa7c9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5773, "upload_time": "2016-08-09T22:17:17", "url": "https://files.pythonhosted.org/packages/5a/c8/95d8a3dbb4364802b5544b17100bc6755f8dc2eea5ea7991bf5c5e4181ea/gevent_eventemitter-2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "873be3c2bdb39bd40fda3f711ba9751d", "sha256": "344de8f313f1fc93543937041414fec05046fc13a42b19dcf1c1b842e053cc21" }, "downloads": -1, "filename": "gevent-eventemitter-2.0.tar.gz", "has_sig": false, "md5_digest": "873be3c2bdb39bd40fda3f711ba9751d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3664, "upload_time": "2016-08-09T22:17:19", "url": "https://files.pythonhosted.org/packages/ae/ca/2f2283d2469c3d345183b9d6620d6625f115a535680513abff6cf394a682/gevent-eventemitter-2.0.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "996ed5368dd734dc2a55beef9c071a5f", "sha256": "30605a9fbb1f38b2511f188a2e7a1b4e9262f3c13bf810ac5b79cc0ba2900ff7" }, "downloads": -1, "filename": "gevent_eventemitter-2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "996ed5368dd734dc2a55beef9c071a5f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5863, "upload_time": "2019-06-02T10:01:31", "url": "https://files.pythonhosted.org/packages/c7/f5/47f896511ca1fb5dd6e9fa1ba152f9ccc3f892f4d31c8757cfe36c248c8e/gevent_eventemitter-2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45b50814265d14369635a1cb6a8ee628", "sha256": "00e6e688c6a255f7bdcef1d8c999e0d02d9ab87d3c6ff626e6dc1a09762107f4" }, "downloads": -1, "filename": "gevent-eventemitter-2.1.tar.gz", "has_sig": false, "md5_digest": "45b50814265d14369635a1cb6a8ee628", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3725, "upload_time": "2019-06-02T10:01:33", "url": "https://files.pythonhosted.org/packages/1f/56/9e449b380f1e8cf19bedb4564e61a79dcf3971e6204ef08885d5816a9fe9/gevent-eventemitter-2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "996ed5368dd734dc2a55beef9c071a5f", "sha256": "30605a9fbb1f38b2511f188a2e7a1b4e9262f3c13bf810ac5b79cc0ba2900ff7" }, "downloads": -1, "filename": "gevent_eventemitter-2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "996ed5368dd734dc2a55beef9c071a5f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5863, "upload_time": "2019-06-02T10:01:31", "url": "https://files.pythonhosted.org/packages/c7/f5/47f896511ca1fb5dd6e9fa1ba152f9ccc3f892f4d31c8757cfe36c248c8e/gevent_eventemitter-2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45b50814265d14369635a1cb6a8ee628", "sha256": "00e6e688c6a255f7bdcef1d8c999e0d02d9ab87d3c6ff626e6dc1a09762107f4" }, "downloads": -1, "filename": "gevent-eventemitter-2.1.tar.gz", "has_sig": false, "md5_digest": "45b50814265d14369635a1cb6a8ee628", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3725, "upload_time": "2019-06-02T10:01:33", "url": "https://files.pythonhosted.org/packages/1f/56/9e449b380f1e8cf19bedb4564e61a79dcf3971e6204ef08885d5816a9fe9/gevent-eventemitter-2.1.tar.gz" } ] }