{ "info": { "author": "Joe Cross", "author_email": "joe.mcross@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. image:: https://img.shields.io/travis/numberoverzero/accordian/master.svg?style=flat-square\n :target: https://travis-ci.org/numberoverzero/accordian\n.. image:: https://img.shields.io/coveralls/numberoverzero/accordian/master.svg?style=flat-square\n :target: https://coveralls.io/github/numberoverzero/accordian\n.. image:: https://img.shields.io/pypi/v/accordian.svg?style=flat-square\n :target: https://pypi.python.org/pypi/accordian\n.. image:: https://img.shields.io/github/issues-raw/numberoverzero/accordian.svg?style=flat-square\n :target: https://github.com/numberoverzero/accordian/issues\n\n\nEvent dispatch in Python 3.5 using asyncio\n\nInstallation\n------------\n\n``pip install accordian``\n\nGetting Started\n---------------\n::\n\n import asyncio\n import accordian\n import random\n\n loop = asyncio.new_event_loop()\n\n dispatch = accordian.Dispatch(loop=loop)\n dispatch.register(\"my_event\", [\"id\", \"value\"])\n\n\n @dispatch.on(\"my_event\")\n async def handle(id, value):\n sleep = 5.0 * random.random()\n print(\"Handling `my_event(id={})` in {} seconds.\".format(id, sleep))\n await asyncio.sleep(sleep, loop=loop)\n print(\"`Completed my_event(id={})`!\".format(id))\n\n\n ids = range(4)\n values = [random.random() for _ in ids]\n for id, value in zip(ids, values):\n params = {\"id\": id, \"value\": value}\n dispatch.trigger(\"my_event\", params)\n\n loop.create_task(dispatch.start())\n loop.run_until_complete(asyncio.sleep(0.01, loop=loop))\n loop.run_until_complete(dispatch.stop())\n\n\nContributing\n------------\n\nContributions welcome! Please make sure `tox` passes (including flake8) before submitting a PR.\n\nDevelopment\n-----------\n\naccordian uses `tox`, `pytest` and `flake8`. To get everything set up::\n\n # RECOMMENDED: create a virtualenv with:\n # mkvirtualenv accordian\n git clone https://github.com/numberoverzero/accordian.git\n pip install tox\n tox", "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/numberoverzero/accordian/", "keywords": "async asyncio dispatch", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "accordian", "package_url": "https://pypi.org/project/accordian/", "platform": "any", "project_url": "https://pypi.org/project/accordian/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/numberoverzero/accordian/" }, "release_url": "https://pypi.org/project/accordian/0.3.1/", "requires_dist": null, "requires_python": null, "summary": "Event dispatch in Python 3.5 using asyncio", "version": "0.3.1" }, "last_serial": 1884630, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "26cf86d45cc50f86f3dfbaa941e40a8a", "sha256": "6b30890707f28a707086fcd0459cbe6f5eed70c19a4d2cabe939913ef9611f34" }, "downloads": -1, "filename": "accordian-0.2.0.tar.gz", "has_sig": false, "md5_digest": "26cf86d45cc50f86f3dfbaa941e40a8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1985, "upload_time": "2015-07-06T03:16:29", "url": "https://files.pythonhosted.org/packages/a6/fe/a2f44d50775d23d6e4ca45d21c999352c5316d19985cc88e7afb04421738/accordian-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "afd0f843872f20d33e0f69aa66482fd1", "sha256": "d784b701dfd63a80211d90cdb39c308b041c2f431a3074f459cecd70473d4a06" }, "downloads": -1, "filename": "accordian-0.2.1.tar.gz", "has_sig": false, "md5_digest": "afd0f843872f20d33e0f69aa66482fd1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4394, "upload_time": "2015-07-06T04:18:35", "url": "https://files.pythonhosted.org/packages/b1/52/ab4fddc3460bb758cce0749220fbe8d7d1ba3d7d49758873e8a1fdb473b3/accordian-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "076cfe3fcfbe94db17b9d081cfe397a1", "sha256": "7b5f21e205a153b2f8aa80cd4adb9d275dc38301ee206cb9fbddf6b636934df1" }, "downloads": -1, "filename": "accordian-0.3.0.tar.gz", "has_sig": false, "md5_digest": "076cfe3fcfbe94db17b9d081cfe397a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3810, "upload_time": "2015-08-28T11:11:17", "url": "https://files.pythonhosted.org/packages/f2/3a/4b7645892f1fcc6a758d7b293170368d7df796abfd45cab7dd591acdf35d/accordian-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "c2a565128205728fb74afa6ddb56b86a", "sha256": "7d6e0a7f2327dcc2ce499da263e0e40d129d9034604c6d66d3532243cc53fddf" }, "downloads": -1, "filename": "accordian-0.3.1.tar.gz", "has_sig": false, "md5_digest": "c2a565128205728fb74afa6ddb56b86a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3840, "upload_time": "2016-01-01T21:07:33", "url": "https://files.pythonhosted.org/packages/d1/0b/96d6b39e898a26d11254d8cde8412be10269cb79d5e7b7cfe299ab11e204/accordian-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c2a565128205728fb74afa6ddb56b86a", "sha256": "7d6e0a7f2327dcc2ce499da263e0e40d129d9034604c6d66d3532243cc53fddf" }, "downloads": -1, "filename": "accordian-0.3.1.tar.gz", "has_sig": false, "md5_digest": "c2a565128205728fb74afa6ddb56b86a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3840, "upload_time": "2016-01-01T21:07:33", "url": "https://files.pythonhosted.org/packages/d1/0b/96d6b39e898a26d11254d8cde8412be10269cb79d5e7b7cfe299ab11e204/accordian-0.3.1.tar.gz" } ] }