{ "info": { "author": "Alan Justino da Silva", "author_email": "alan.justino@yahoo.com.br", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "Celery Executor\n===============\n\n[![PyPI version fury.io](https://badge.fury.io/py/celery-executor.svg)](https://pypi.python.org/pypi/celery-executor/)\n[![Build Status](https://travis-ci.org/getninjas/celery-executor.svg?branch=master)](https://travis-ci.org/getninjas/celery-executor)\n[![Read The Docs](https://readthedocs.org/projects/celery-executor/badge/?version=latest)](https://celery-executor.readthedocs.io/en/latest/?badge=latest)\n[![PyUP](https://pyup.io/repos/github/getninjas/celery-executor/shield.svg)](https://pyup.io/repos/github/getninjas/celery-executor/)\n\nA `concurrent.futures.Executor` implementation using Celery as backend\n\n* Free software: Apache Software License 2.0\n* Documentation: https://celery-executor.readthedocs.io.\n\nFeatures\n--------\n\nThe package provides a `CeleryExecutor` implementing the interface of\n[`concurrent.futures.Executor`](https://docs.python.org/3/library/concurrent.futures.html#executor-objects)\n\n```python\n>>> from celery_executor.executors import CeleryExecutor\n>>> executor = CeleryExecutor()\n>>> for result in executor.map(str.upper, ['one', 'two', 'three']):\n... print(result)\nONE\nTWO\nTHREE\n```\n\nBeware that the `Executor.map()` interface can yield the results out of order,\nif later ones got to finish first.\n\nCaveats\n-------\n\nThis executor frees the developer to the burden of mark every single task\nfunction with the Celery decorators, and to import such tasks on the Worker\nbeforehand. But does not frees from sending the code to the Worker.\n\nThe function sent to `CeleryExecutor.map()` should be pickable on the client\n(caller of `.map()` or `.submit()`) and should be unpickable on the Celery\nWorker handling the \"Task\" sent. Is not possible to send lambdas for example.\n\nAs Celery assumes that is to the developer to put the needed code on the Worker,\nbe sure that the function/partial code sent to `CeleryExecutor` to exist on the\nWorker.\n\nTo Be Done\n----------\n\n- [ ] Document the `CeleryExecutor.__init__()` nonstandard extra options `predelay`, `postdelay` and `applyasync_kwargs`.\n- [ ] Test behaviours of canceling a Task when canceling a Future\n- [ ] Test behaviours of shutting down executors and trying to send new tasks\n- [ ] Find a way to test the RUNNING state of Celery Tasks, as its events are not propagated by the test worker Celery provides\n\nCredits\n-------\n\nThis package was created with [Cookiecutter](https://github.com/audreyr/cookiecutter) and the [`audreyr/cookiecutter-pypackage`](https://github.com/audreyr/cookiecutter-pypackage) project template.\n\n\n=======\nHistory\n=======\n\n0.1.0 (2018-05-25)\n------------------\n\n* First release on PyPI.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/getninjas/celery-executor", "keywords": "celery_executor", "license": "Apache Software License 2.0", "maintainer": "", "maintainer_email": "", "name": "celery-executor", "package_url": "https://pypi.org/project/celery-executor/", "platform": "", "project_url": "https://pypi.org/project/celery-executor/", "project_urls": { "Homepage": "https://github.com/getninjas/celery-executor" }, "release_url": "https://pypi.org/project/celery-executor/0.2.0/", "requires_dist": [ "future (>=0.16.0)", "celery", "futures; python_version <= \"2.7\"" ], "requires_python": "", "summary": "A concurrent.futures.Executor implementation using Celery as backend", "version": "0.2.0" }, "last_serial": 3910776, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "6ec6b2e03cd0884d2d552514abb0711c", "sha256": "1ca778c0a59652bf4480af1489e9ba1315d38315ea9939c6ef5df348c3e4ba08" }, "downloads": -1, "filename": "celery_executor-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6ec6b2e03cd0884d2d552514abb0711c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4625, "upload_time": "2018-05-29T19:35:09", "url": "https://files.pythonhosted.org/packages/71/c8/43caf397e90a0cedb93811aedfe88ce6df9c4ab9eb44881c89b313b59f40/celery_executor-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8beccc9a64fc652f86f0f028dd18d1b7", "sha256": "141f4de4175df60e00b1534b2243e0d8bedda08be0cc55bc1a9e3dc2a169fbca" }, "downloads": -1, "filename": "celery-executor-0.2.0.tar.gz", "has_sig": false, "md5_digest": "8beccc9a64fc652f86f0f028dd18d1b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12562, "upload_time": "2018-05-29T19:35:11", "url": "https://files.pythonhosted.org/packages/ba/30/4791f9180276c36f2f0a7980fa890b477813dc9c4d6434d8418b0b338936/celery-executor-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6ec6b2e03cd0884d2d552514abb0711c", "sha256": "1ca778c0a59652bf4480af1489e9ba1315d38315ea9939c6ef5df348c3e4ba08" }, "downloads": -1, "filename": "celery_executor-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6ec6b2e03cd0884d2d552514abb0711c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4625, "upload_time": "2018-05-29T19:35:09", "url": "https://files.pythonhosted.org/packages/71/c8/43caf397e90a0cedb93811aedfe88ce6df9c4ab9eb44881c89b313b59f40/celery_executor-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8beccc9a64fc652f86f0f028dd18d1b7", "sha256": "141f4de4175df60e00b1534b2243e0d8bedda08be0cc55bc1a9e3dc2a169fbca" }, "downloads": -1, "filename": "celery-executor-0.2.0.tar.gz", "has_sig": false, "md5_digest": "8beccc9a64fc652f86f0f028dd18d1b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12562, "upload_time": "2018-05-29T19:35:11", "url": "https://files.pythonhosted.org/packages/ba/30/4791f9180276c36f2f0a7980fa890b477813dc9c4d6434d8418b0b338936/celery-executor-0.2.0.tar.gz" } ] }