{ "info": { "author": "Ryan Northey", "author_email": "ryan@3ca.org.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Detailed documentation\n**********************\n\naio.signals\n===========\n\nPubsub system for the aio_ asyncio framework\n\n.. _aio: https://github.com/phlax/aio\n\n\n\nBuild status\n------------\n\n.. image:: https://travis-ci.org/phlax/aio.signals.svg?branch=master\n\t :target: https://travis-ci.org/phlax/aio.signals\n\n\nInstallation\n------------\n\nRequires python >= 3.4\n\nInstall with:\n\n.. code:: bash\n\n\t pip install aio.signals\n\n\nQuickstart\n----------\n\nThe listen function is called synchronously, but the callback listener will be called as a coroutine if it isnt one\n\nThe callback listener receives a signal object that has the name of the signal and the object that the signal was emitted with\n\nThe emit function is a coroutine\n\nAdd the following code to a file my_signals.py\n\n.. code:: python\n\n\t import asyncio\n\t from aio.signals import Signals\t \n\t \n\t def listener(signal):\n\t yield from asyncio.sleep(1)\n\t print(signal.data)\n\n\t signals = Signals()\n\t signals.listen(\"my-signal\", listener)\n\n\t loop = asyncio.get_event_loop()\n\t loop.run_until_complete(\n\t signals.emit(\"my-signal\", 'BOOM!'))\n\n\nRun with\n\n.. code:: bash\n\n\t python my_signals.py\n\n\n\naio.signals usage\n=================\n\nUsing\n-----\n\n>>> import asyncio\n>>> import aio.testing\n>>> from aio.signals import Signals\n\nThe handler receives a signal object\n\nsignal.name is the name of the signal\n\nsignal.data contains the emitted object\n\n>>> @asyncio.coroutine\n... def callback(signal):\n... print(\"%s received with %s\" % (signal.name, signal.data))\n\n>>> @aio.testing.run_until_complete\n... def run_test(_signals, name, message):\n... yield from _signals.emit(name, message)\n\n>>> signals = Signals()\n>>> signals.listen(\"test-signal\", callback)\n\n>>> run_test(signals, \"test-signal\", 'BOOM!')\ntest-signal received with BOOM!\n\nThe handler is wrapped in a co-routine if its not one already\n\n>>> def callback(signal):\n... yield from asyncio.sleep(1)\n... print(\"%s received with %s\" % (signal.name, signal.data))\n\n>>> signals = Signals()\n>>> signals.listen(\"test-signal-2\", callback)\n\n>>> run_test(signals, \"test-signal-2\", 'BOOM AGAIN!')\ntest-signal-2 received with BOOM AGAIN!", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/phlax/aio.signals", "keywords": "", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "aio.signals", "package_url": "https://pypi.org/project/aio.signals/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/aio.signals/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/phlax/aio.signals" }, "release_url": "https://pypi.org/project/aio.signals/0.1.3/", "requires_dist": null, "requires_python": null, "summary": "Pubsub system for aio framework", "version": "0.1.3" }, "last_serial": 1561884, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "bfaa9265e192eaca677d2821fd8d6138", "sha256": "68c47d00bd04dc6de9a3204800bbfab9f7a98ce9859e3e72ef3e241ff2868d38" }, "downloads": -1, "filename": "aio.signals-0.0.1.tar.gz", "has_sig": false, "md5_digest": "bfaa9265e192eaca677d2821fd8d6138", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2893, "upload_time": "2015-05-17T16:40:39", "url": "https://files.pythonhosted.org/packages/55/9b/f7c15a853fb4f358cce3afdcf207013357cd7a6f184d20a1787db63e4dc8/aio.signals-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "4fbbcde4d2d9ba46372589062a16513d", "sha256": "886c4d922084d40e1e9135acd77b1c0299381a5e3bab262a75d546a5e2c87f5d" }, "downloads": -1, "filename": "aio.signals-0.0.2.tar.gz", "has_sig": false, "md5_digest": "4fbbcde4d2d9ba46372589062a16513d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2890, "upload_time": "2015-05-17T16:45:18", "url": "https://files.pythonhosted.org/packages/c9/1d/96f43ad97cd950455443d0d9f4d483ff26645e17cd579947e447e13bead8/aio.signals-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "b8c641ab8aebd81efc0d46dba8096ee0", "sha256": "1ba795adfe587e6a055660128f29f8e8d825ed84fec675f0b2372f759fe44837" }, "downloads": -1, "filename": "aio.signals-0.0.3.tar.gz", "has_sig": false, "md5_digest": "b8c641ab8aebd81efc0d46dba8096ee0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2877, "upload_time": "2015-05-17T16:46:29", "url": "https://files.pythonhosted.org/packages/eb/81/31c76668b6ec82df5bfd9d2cff97ab376894e7ae3eabac135cadf6f2c78e/aio.signals-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "1d69992100f4b28248411b294df8f8ce", "sha256": "4dba564357e783b28d5ab6b089d090fe273749213386c070147650f913373cff" }, "downloads": -1, "filename": "aio.signals-0.0.4.tar.gz", "has_sig": false, "md5_digest": "1d69992100f4b28248411b294df8f8ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2864, "upload_time": "2015-05-17T17:54:13", "url": "https://files.pythonhosted.org/packages/0f/09/b6d3b9f0d0a079b266f5a2ad830c0ed520ba1a22b97964db0195c6a34459/aio.signals-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "e985f72a9e6bd10a304fc328eb782d30", "sha256": "ca154dc999b6f7dbc4e1f443f5900eb71ab4d298533d3a23175fe376a08bf4d4" }, "downloads": -1, "filename": "aio.signals-0.0.5.tar.gz", "has_sig": false, "md5_digest": "e985f72a9e6bd10a304fc328eb782d30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2876, "upload_time": "2015-05-23T21:01:04", "url": "https://files.pythonhosted.org/packages/24/b5/c5a08e6fda1242d140072020eff583afa6189afeff58e5eca0addb6999b7/aio.signals-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "5a643d6302749ae2accde8bc2a291e27", "sha256": "226a77f9ee6fd04cc7434b2dedd6d0816a8db11ef99308f83a2ecb3b8b993bbd" }, "downloads": -1, "filename": "aio.signals-0.0.6.tar.gz", "has_sig": false, "md5_digest": "5a643d6302749ae2accde8bc2a291e27", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3314, "upload_time": "2015-05-24T20:17:36", "url": "https://files.pythonhosted.org/packages/97/b4/4bdfcff271c6db9f12a51e1f97e3ebee36e0a01fceb86738e5ee33b73e18/aio.signals-0.0.6.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "b7a69be39eb5d6f5329fac1a1fd25358", "sha256": "fb45996744f59e2d66a031e95f45666370458e1e611bedc7ff6d0de189b8111e" }, "downloads": -1, "filename": "aio.signals-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b7a69be39eb5d6f5329fac1a1fd25358", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3302, "upload_time": "2015-05-24T21:38:48", "url": "https://files.pythonhosted.org/packages/2e/f6/e65a2b1b9e10357b700873fd1c273294512da6c5c8a06756491dae99aa51/aio.signals-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "edd0a501ad3f9325fa83adca3b8f5ff7", "sha256": "5746edc72fca85876def19b9e07e5e2508a80c7929a3e4d9fc472f0877c2a6da" }, "downloads": -1, "filename": "aio.signals-0.1.1.tar.gz", "has_sig": false, "md5_digest": "edd0a501ad3f9325fa83adca3b8f5ff7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3455, "upload_time": "2015-05-25T19:00:03", "url": "https://files.pythonhosted.org/packages/48/06/67b605d871d242ed7394a231ec32fbf19d677ea03fa59b2859b2dab9d8ca/aio.signals-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "6857c9232aad5f65f722e5a534da3df3", "sha256": "77007cdc5f8737b39104b80fe064874dfb5d5d4103aace2e3494eaed55d1ee19" }, "downloads": -1, "filename": "aio.signals-0.1.2.tar.gz", "has_sig": false, "md5_digest": "6857c9232aad5f65f722e5a534da3df3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3505, "upload_time": "2015-05-25T19:04:32", "url": "https://files.pythonhosted.org/packages/22/95/7618e28916388e711387bf513dfbd87124f294bedcf96bd80d74cde551a3/aio.signals-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "708fdec823c3d63b9321c00667069c09", "sha256": "be89f70c96ae300354518fc08672cc37c36c166b1a2167b5b8d1d591a81d4342" }, "downloads": -1, "filename": "aio.signals-0.1.3.tar.gz", "has_sig": false, "md5_digest": "708fdec823c3d63b9321c00667069c09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3613, "upload_time": "2015-05-25T19:07:12", "url": "https://files.pythonhosted.org/packages/41/a0/6b45b50f6c5b4629bd6e458e26b8dad66787c34487e3cf083de84511371c/aio.signals-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "708fdec823c3d63b9321c00667069c09", "sha256": "be89f70c96ae300354518fc08672cc37c36c166b1a2167b5b8d1d591a81d4342" }, "downloads": -1, "filename": "aio.signals-0.1.3.tar.gz", "has_sig": false, "md5_digest": "708fdec823c3d63b9321c00667069c09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3613, "upload_time": "2015-05-25T19:07:12", "url": "https://files.pythonhosted.org/packages/41/a0/6b45b50f6c5b4629bd6e458e26b8dad66787c34487e3cf083de84511371c/aio.signals-0.1.3.tar.gz" } ] }