{ "info": { "author": "jphaas1, simonrad, rodsenra, tati_alchueyr (tatiana)", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "Greenlet-Tornado\n================\n\nAn easy way to seamlessly use Greenlet with Tornado.\n----------------------------------------------------\n\nThis allows you to write code as if it were synchronous, and not worry about callbacks at all.\nYou also don't have to use any special patterns, such as writing everything as a generator.\n\nOverall this allows you to structure your program in a much more sensible, straightforward way.\nIt's also immensely helpful when porting synchronous code to Tornado.\n\nDerived from this blog article:\n\n\nInstall\n-------\n\n pip install greenlet_tornado\n\nExample Usage:\n--------------\n\n import tornado.web\n from greenlet_tornado import greenlet_asynchronous, greenlet_fetch\n\n class ExampleHandler(tornado.web.RequestHandler):\n @greenlet_asynchronous\n def get(self):\n # ...\n self.helper()\n # ...\n self.write(\"Hello World!\")\n\n def helper(self):\n # Fetch something. greenlet_fetch() will block until the request is complete,\n # but the tornado IOLoop can do other things in the meantime.\n http_response = greenlet_fetch(\"http://www.mopub.com\")\n # ... Do something with the response ...\n\nRun tests\n---------\n\n pip install -r requirements_tests.txt\n nosetests -s --cover-branches --cover-erase --with-coverage --cover-inclusive --cover-package=greenlet_tornado --tests=tests", "description_content_type": null, "docs_url": null, "download_url": "http://pypi.python.org/pypi/greenlet_tornado", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/tatiana/greenlet_tornado", "keywords": null, "license": "MIT License", "maintainer": null, "maintainer_email": null, "name": "greenlet_tornado", "package_url": "https://pypi.org/project/greenlet_tornado/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/greenlet_tornado/", "project_urls": { "Download": "http://pypi.python.org/pypi/greenlet_tornado", "Homepage": "http://github.com/tatiana/greenlet_tornado" }, "release_url": "https://pypi.org/project/greenlet_tornado/1.1.3/", "requires_dist": null, "requires_python": null, "summary": "An easy way to seamlessly use Greenlet with Tornado", "version": "1.1.3" }, "last_serial": 2612875, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "9a656668fb82e458af9be345702fb4dc", "sha256": "83b02e6ca96f637af3ef307abf3a37d15318d03867544b6cc7542b3ee7b48ca6" }, "downloads": -1, "filename": "greenlet_tornado-1.0.0.tar.gz", "has_sig": false, "md5_digest": "9a656668fb82e458af9be345702fb4dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4910, "upload_time": "2014-06-14T15:52:49", "url": "https://files.pythonhosted.org/packages/5e/e2/1c4277f2102adaa584ec1a17b5813f2d8e8690a811ef3914511515801509/greenlet_tornado-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "b860dc08bb8bb6b6f92d1e54ac0b43fb", "sha256": "6cdd4f1706baccd6eec7be7c8d053862fa208ae0e3c05e507865239c0ea4b8c3" }, "downloads": -1, "filename": "greenlet_tornado-1.1.0.tar.gz", "has_sig": false, "md5_digest": "b860dc08bb8bb6b6f92d1e54ac0b43fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4984, "upload_time": "2016-03-31T09:06:36", "url": "https://files.pythonhosted.org/packages/b0/a9/2cf2369be784189216069b32a7b4fa51319a06683c328104387b9bdcd734/greenlet_tornado-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "4a32b0af4d43a0c5590d4e2cb1f424b5", "sha256": "775c1685dd084a9a93d3e3cccb86318d802c00a9588ed3db89f445ecba459424" }, "downloads": -1, "filename": "greenlet_tornado-1.1.1.tar.gz", "has_sig": false, "md5_digest": "4a32b0af4d43a0c5590d4e2cb1f424b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5051, "upload_time": "2016-04-04T07:55:50", "url": "https://files.pythonhosted.org/packages/9a/43/fe5ec79f5a874db97564a926c3bd0a1ddaf7a8d8a0b57c22312096170576/greenlet_tornado-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "01eded8c6f1b23550692a2bfcd089546", "sha256": "2754cde86be1189c395bf3565c0ac09947cfc3fa98374851d33965f6fcb542bd" }, "downloads": -1, "filename": "greenlet_tornado-1.1.2.tar.gz", "has_sig": false, "md5_digest": "01eded8c6f1b23550692a2bfcd089546", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5121, "upload_time": "2016-04-04T14:09:40", "url": "https://files.pythonhosted.org/packages/cc/f4/799714b47caea44ee430555b73003a16b9aef3470d8abe9a12ede26c3713/greenlet_tornado-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "9d8beca870b5f9ffe2ec91cbe7b9473c", "sha256": "285ff3f3b7871e469d8428442862d55c499f1d418ab26fb66addd059b13a8f71" }, "downloads": -1, "filename": "greenlet_tornado-1.1.3.tar.gz", "has_sig": false, "md5_digest": "9d8beca870b5f9ffe2ec91cbe7b9473c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5116, "upload_time": "2017-02-01T22:13:29", "url": "https://files.pythonhosted.org/packages/c1/a4/ddf5aa2a80616ca4a968c25223737002989874d2b8e5ab7f50cc344262b4/greenlet_tornado-1.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9d8beca870b5f9ffe2ec91cbe7b9473c", "sha256": "285ff3f3b7871e469d8428442862d55c499f1d418ab26fb66addd059b13a8f71" }, "downloads": -1, "filename": "greenlet_tornado-1.1.3.tar.gz", "has_sig": false, "md5_digest": "9d8beca870b5f9ffe2ec91cbe7b9473c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5116, "upload_time": "2017-02-01T22:13:29", "url": "https://files.pythonhosted.org/packages/c1/a4/ddf5aa2a80616ca4a968c25223737002989874d2b8e5ab7f50cc344262b4/greenlet_tornado-1.1.3.tar.gz" } ] }