{ "info": { "author": "Eren G\u00fcven, Yalei Du", "author_email": "erenguven0@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Utilities" ], "description": "============\ntornadoist2\n============\n\nInstallation\n============\n\n pip install tornadoist2\n\n**tornadoist** -currently- provides Mixins to execute code outside\n``tornado.ioloop.IOLoop`` to avoid blocking. These are:\n\n- CeleryMixin: Celery Tasks\n- ProcessMixin: Functions in separate process\n\nBoth support results, avoids polling or timeouts. More info below.\n\nDemo app included. (Celery with ``mongodb://`` preconfigured in demo app)\n\nCeleryMixin\n-----------\n\n**CeleryMixin** is a Mixin class to use with ``tornado.web.RequestHandler``\nthat provides a Tornado-like interface to running Celery tasks on TornadoServer.\n\nHowTO\n`````\n\nUsing ``tornado.gen`` ::\n\n from tornado import web, gen\n from tornadoist2 import CeleryMixin\n\n class CeleryHandler(tornado.web.RequestHandler, CeleryMixin):\n @web.asynchronous\n @gen.engine\n def get(self):\n result = yield gen.Task(self.add_task, some_task, 'somearg')\n self.write('Hello %s World!' % result)\n self.finish()\n\nOr using explicit callback ::\n\n class CeleryHandler(tornado.web.RequestHandler, CeleryMixin):\n @tornado.web.asynchronous\n def get(self):\n self.add_task(some_task, callback=self._on_result)\n\n def _on_result(self, result):\n do_something_with_result(result)\n self.finish()\n\nProcessMixin\n------------\n\n**ProcessMixin** is a Mixin class to use with ``tornado.web.RequestHandler``\nthat provides a Tornado-like interface to running functions with\n``multiprocessing.Process`` outside IOLoop.\n\nHowTO\n`````\n\nUsing ``tornado.gen`` ::\n\n from tornado import web, gen\n from tornadoist import ProcessMixin\n\n class ProcessHandler(tornado.web.RequestHandler, ProcessMixin):\n @tornado.web.asynchronous\n @tornado.gen.engine\n def get(self):\n result = yield tornado.gen.Task(self.add_task, my_blocking_function,\n 'somearg', some_kwarg=42)\n self.write('Hello Process World! %s' % result)\n self.finish()\n\nLicense\n^^^^^^^\n\n`Apache License, Version 2.0 `_\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/badbye/tornadoist.git", "keywords": "tornado", "license": "Apache License, Version 2", "maintainer": "", "maintainer_email": "", "name": "tornadoist2", "package_url": "https://pypi.org/project/tornadoist2/", "platform": "", "project_url": "https://pypi.org/project/tornadoist2/", "project_urls": { "Homepage": "https://github.com/badbye/tornadoist.git" }, "release_url": "https://pypi.org/project/tornadoist2/0.2.1/", "requires_dist": null, "requires_python": "", "summary": "mixins for tornado", "version": "0.2.1" }, "last_serial": 2934331, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "07268aa5e52a0aea51cb116d942c6764", "sha256": "db1024bbff367e921d3bd98a70de847fd43ea9b259098ce0fdf3f473bcfaf11c" }, "downloads": -1, "filename": "tornadoist2-0.1.0.tar.gz", "has_sig": false, "md5_digest": "07268aa5e52a0aea51cb116d942c6764", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4265, "upload_time": "2017-06-07T11:25:28", "url": "https://files.pythonhosted.org/packages/75/91/4d701605c3d9a3c96c3871d433265bf455646a58b1c2f93f32f28883e2f1/tornadoist2-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "ecb091396d3b2c0ea1cc8450c65a577a", "sha256": "27f077ffdb45bfa4c5e7e90ea980f7a600572068ccdbeb0551854a4e6ea6283f" }, "downloads": -1, "filename": "tornadoist2-0.2.0.tar.gz", "has_sig": false, "md5_digest": "ecb091396d3b2c0ea1cc8450c65a577a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4323, "upload_time": "2017-06-08T01:28:23", "url": "https://files.pythonhosted.org/packages/90/fc/3c3a31b77e25f6338a57e1f9ab7713267a4de481e3e7c37450f29c9b9492/tornadoist2-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "a5e10f423009ca568a58685aaf755d35", "sha256": "921baeee39774233385b112ae8f038963c630291afcf37bca6c58fc0e3d2943e" }, "downloads": -1, "filename": "tornadoist2-0.2.1.tar.gz", "has_sig": false, "md5_digest": "a5e10f423009ca568a58685aaf755d35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4328, "upload_time": "2017-06-08T04:10:25", "url": "https://files.pythonhosted.org/packages/cd/5f/a521d3f2d9a4369efe5058dbb34c4c68bed82df473dc55e62155aaf9bc25/tornadoist2-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a5e10f423009ca568a58685aaf755d35", "sha256": "921baeee39774233385b112ae8f038963c630291afcf37bca6c58fc0e3d2943e" }, "downloads": -1, "filename": "tornadoist2-0.2.1.tar.gz", "has_sig": false, "md5_digest": "a5e10f423009ca568a58685aaf755d35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4328, "upload_time": "2017-06-08T04:10:25", "url": "https://files.pythonhosted.org/packages/cd/5f/a521d3f2d9a4369efe5058dbb34c4c68bed82df473dc55e62155aaf9bc25/tornadoist2-0.2.1.tar.gz" } ] }