{ "info": { "author": "Michael V. DePalatis", "author_email": "mike@depalatis.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "Tornado-sent events\n===================\n\nAn implementation of the publish/subscribe pattern for the Tornado_ web\nserver.\n\nInstallation\n------------\n\nTornadose is on PyPI:\n\n.. code-block:: bash\n\n $ pip install tornadose\n\nThis will grab the latest official release. Alternatively, or for development,\nyou can clone the repository and install it manually:\n\n.. code-block:: bash\n\n $ git clone https://github.com/mivade/tornadose.git\n $ cd tornadose\n $ pip install -e .\n\nUsage\n-----\n\nA simple example of using server-sent events (a.k.a. EventSource):\n\n.. code-block:: python\n\n import random\n from tornado.ioloop import IOLoop, PeriodicCallback\n from tornado.web import Application\n from tornadose.handlers import EventSource\n from tornadose.stores import DataStore\n\n store = DataStore()\n\n app = Application(\n [(r'/', EventSource, {'store': store})],\n debug=True)\n app.listen(9000)\n\n loop = IOLoop.instance()\n PeriodicCallback(lambda: store.submit(random.random()), 1000).start()\n loop.start()\n\nTo monitor the stream with curl_:\n\n.. code-block:: bash\n\n $ curl http://localhost:9000\n\nor with HTTPie_:\n\n.. code-block:: bash\n\n $ http -S get localhost:9000\n\nAdditional demos can be found in the ``demos`` directory.\n\nContributing\n------------\n\nContributions, complaints, criticisms, and whatever else are welcome. The source\ncode and issue tracker can be found on GitHub_.\n\nSee also\n--------\n\nSome other implementations of server-sent events with Tornado include:\n\n* tornado-sse_\n* tornado-eventsource_\n\nLicense\n-------\n\nTornadose is freely available under the terms of the MIT license. See\n``LICENSE`` for details.\n\n.. _Tornado: http://www.tornadoweb.org/en/stable/\n.. _EventSource: https://developer.mozilla.org/en-US/docs/Web/API/EventSource\n.. _curl: http://curl.haxx.se/\n.. _HTTPie: https://github.com/jkbrzt/httpie\n.. _tornado-sse: https://github.com/truetug/tornado-sse\n.. _tornado-eventsource: https://github.com/guilhermef/tornado-eventsource\n.. _GitHub: https://github.com/mivade/tornadose", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mivade/tornadose", "keywords": "tornado web eventsource websockets pubsub", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "tornadose", "package_url": "https://pypi.org/project/tornadose/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/tornadose/", "project_urls": { "Homepage": "https://github.com/mivade/tornadose" }, "release_url": "https://pypi.org/project/tornadose/0.4.1/", "requires_dist": [ "tornado (>=4.2)" ], "requires_python": "", "summary": "Tornado-sent events", "version": "0.4.1" }, "last_serial": 2196533, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9c7e9289f8e49f9fb4dd449b24c475df", "sha256": "ffce63ac7d9ed090e17afbc58c0f17394136309917010625908b3d40c49ea2a3" }, "downloads": -1, "filename": "tornadose-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9c7e9289f8e49f9fb4dd449b24c475df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2727, "upload_time": "2015-09-20T12:35:41", "url": "https://files.pythonhosted.org/packages/1e/59/fc11b3c5b0d898c4a3c2e35da7dcb0fed9ae8956db8974072ac0e33fa054/tornadose-0.1.0.tar.gz" } ], "0.1.1": [], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f602a49b3dc2f8ec7e29f0ea730e0bb6", "sha256": "143dabdfefedacdcac1134ae5a35a539e712b6b7697eac5c393958efba58722c" }, "downloads": -1, "filename": "tornadose-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f602a49b3dc2f8ec7e29f0ea730e0bb6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2825, "upload_time": "2015-09-20T16:24:32", "url": "https://files.pythonhosted.org/packages/26/53/76260d1fa2a756465405b2197748ee2df8cd48586f088b5deab64572d6bd/tornadose-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a9dad947f41c1c88494eb9fdc1c98037", "sha256": "91d241b075fd5b1f843eaa35b2713e80eceda6058c008e3fe03f01d13baf8d96" }, "downloads": -1, "filename": "tornadose-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a9dad947f41c1c88494eb9fdc1c98037", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8085, "upload_time": "2015-10-11T16:09:07", "url": "https://files.pythonhosted.org/packages/fe/bf/d9c2a778141151c9a07bc7bd09562ecb3651f205a1d0b14fa6b33d1d7aae/tornadose-0.2.0-py2.py3-none-any.whl" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "cc75cf2c0f0abf78b0745a0b4b738c0b", "sha256": "5dad145996d7cd0664f91d0be4d23f077802c23421dbed9c4e6093ee29d159a7" }, "downloads": -1, "filename": "tornadose-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cc75cf2c0f0abf78b0745a0b4b738c0b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8606, "upload_time": "2015-10-18T11:22:39", "url": "https://files.pythonhosted.org/packages/b7/12/f96b6b1777dedd84f15ba43bf93e9ead3e17aa1308039d144a6270e6c9e6/tornadose-0.2.1-py2.py3-none-any.whl" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "fd6dce2589c543e17ddb6edee3b38510", "sha256": "14e80da938caa7e742bd422ed1c37d90f9bd0da38f22f10f68dc4ffabc09fdb9" }, "downloads": -1, "filename": "tornadose-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fd6dce2589c543e17ddb6edee3b38510", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8570, "upload_time": "2015-10-21T17:46:22", "url": "https://files.pythonhosted.org/packages/18/20/d481e97a765da3032bfc5ea9f173e71fc0d436b2ca93e9cd78211d6ece77/tornadose-0.2.2-py2.py3-none-any.whl" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "f4211de6bd98158270071b04b550344c", "sha256": "0550f9d636e5c653786ab928180a1b2cec0648cdf65713b28183b463b92bb0a1" }, "downloads": -1, "filename": "tornadose-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f4211de6bd98158270071b04b550344c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8349, "upload_time": "2015-12-08T18:33:05", "url": "https://files.pythonhosted.org/packages/50/49/2b57512398f0cc51fe0b2f484ea8e2893988ae2b8b1b58b72fc4431d7b2b/tornadose-0.3.0-py2.py3-none-any.whl" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "38cdc161c06fbc06846217e72ed91d17", "sha256": "20c33bac67d2114c3dae250602f8e9de9424d627b59910dcd026be12a53a9cd7" }, "downloads": -1, "filename": "tornadose-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "38cdc161c06fbc06846217e72ed91d17", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8024, "upload_time": "2016-05-28T11:15:44", "url": "https://files.pythonhosted.org/packages/49/bf/07844ae5fb92afd9905b60e926d0106aab37eda179992726ce050f5f0db8/tornadose-0.4.0-py2.py3-none-any.whl" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "9ad9fb8e0107d113594b2082df8ecb53", "sha256": "17bde7b944d27e6fbd5c5cc1356597579988f836bd78bda96240caa44fcdbde4" }, "downloads": -1, "filename": "tornadose-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9ad9fb8e0107d113594b2082df8ecb53", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7999, "upload_time": "2016-06-30T18:53:42", "url": "https://files.pythonhosted.org/packages/87/5b/b19b813522d27303f192994a9ac9adb44d718c0e76abe1c6b6e4c928829e/tornadose-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2f2dec2703fbb205565373d36053c93", "sha256": "8547a76fe6cb0ce5cb4a1ae26d60f199c23d952ef57fa84e3450ac2e328c2cff" }, "downloads": -1, "filename": "tornadose-0.4.1.tar.gz", "has_sig": false, "md5_digest": "c2f2dec2703fbb205565373d36053c93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5461, "upload_time": "2016-06-30T18:53:47", "url": "https://files.pythonhosted.org/packages/d9/8f/645cd444b98f8cc248a6a7ac4d2b07b1b7e6be21decf82d390848dff2182/tornadose-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9ad9fb8e0107d113594b2082df8ecb53", "sha256": "17bde7b944d27e6fbd5c5cc1356597579988f836bd78bda96240caa44fcdbde4" }, "downloads": -1, "filename": "tornadose-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9ad9fb8e0107d113594b2082df8ecb53", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7999, "upload_time": "2016-06-30T18:53:42", "url": "https://files.pythonhosted.org/packages/87/5b/b19b813522d27303f192994a9ac9adb44d718c0e76abe1c6b6e4c928829e/tornadose-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2f2dec2703fbb205565373d36053c93", "sha256": "8547a76fe6cb0ce5cb4a1ae26d60f199c23d952ef57fa84e3450ac2e328c2cff" }, "downloads": -1, "filename": "tornadose-0.4.1.tar.gz", "has_sig": false, "md5_digest": "c2f2dec2703fbb205565373d36053c93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5461, "upload_time": "2016-06-30T18:53:47", "url": "https://files.pythonhosted.org/packages/d9/8f/645cd444b98f8cc248a6a7ac4d2b07b1b7e6be21decf82d390848dff2182/tornadose-0.4.1.tar.gz" } ] }