{ "info": { "author": "Christopher Flynn", "author_email": "crf204@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: System :: Logging", "Topic :: System :: Monitoring" ], "description": "celery-slack\n============\n\n|travis| |rtd| |codecov| |pypi| |pyversions|\n\n\n.. |travis| image:: https://img.shields.io/travis/crflynn/celery-slack.svg\n :target: https://travis-ci.org/crflynn/celery-slack\n\n.. |rtd| image:: https://img.shields.io/readthedocs/celery-slack.svg\n :target: http://celery-slack.readthedocs.io/en/latest/\n\n.. |codecov| image:: https://codecov.io/gh/crflynn/celery-slack/branch/master/graphs/badge.svg\n :target: https://codecov.io/gh/crflynn/celery-slack\n\n.. |pypi| image:: https://img.shields.io/pypi/v/celery-slack.svg\n :target: https://pypi.python.org/pypi/celery-slack\n\n.. |pyversions| image:: https://img.shields.io/pypi/pyversions/celery-slack.svg\n :target: https://pypi.python.org/pypi/celery-slack\n\n\nCelery-slack is a `Celery `_\nextension that posts messages to a Slack channel\nregarding a Celery application, its beat schedule, and its worker task\nexecution. Optionally those messages can link to\n`Flower `_ task pages.\n\n.. image:: https://i.imgur.com/fDkivP8.png\n\nPrerequisites\n-------------\n\nTo use this package you will need a Slack App that is part of your\nSlack workspace. You can create an App from\n`this page `_. This App should have an incoming\nwebhook registered to one of your Slack channels. See\n`Slack incoming webhooks `_ for more\ninformation.\n\nInstallation\n------------\n\nCelery-slack is a python package available on pypi.\nIt can be installed using ``pip``:\n\n.. code-block:: python\n\n pip install celery-slack\n\nBasic usage\n-----------\n\nThe most basic implementation of celery-slack requires a Celery instance object\nand a Slack webhook corresponding to a Slack channel. A simple example might\nlook something like this:\n\n.. code-block:: python\n\n from celery import Celery\n from celery_slack import Slackify\n\n\n SLACK_WEBHOOK = 'https://hooks.slack.com/services/XXX/YYY/ZZZ'\n\n app = Celery('project')\n app.config_from_object('project.config')\n\n slack_app = Slackify(app, SLACK_WEBHOOK)\n\n\n if __name__ == '__main__':\n app.start()\n\n\nAdvanced usage\n--------------\n\nCelery-slack offers a number of configuration options to customize the look\nand output of Slack messages. The following are the default options of the\nextension:\n\n.. code-block:: javascript\n\n DEFAULT_OPTIONS = {\n \"slack_beat_init_color\": \"#FFCC2B\",\n \"slack_broker_connect_color\": \"#36A64F\",\n \"slack_broker_disconnect_color\": \"#D00001\",\n \"slack_celery_startup_color\": \"#FFCC2B\",\n \"slack_celery_shutdown_color\": \"#660033\",\n \"slack_task_prerun_color\": \"#D3D3D3\",\n \"slack_task_success_color\": \"#36A64F\",\n \"slack_task_failure_color\": \"#D00001\",\n \"slack_request_timeout\": 1,\n \"flower_base_url\": None,\n \"show_celery_hostname\": False,\n \"show_task_id\": True,\n \"show_task_execution_time\": True,\n \"show_task_args\": True,\n \"show_task_kwargs\": True,\n \"show_task_exception_info\": True,\n \"show_task_return_value\": True,\n \"show_task_prerun\": False,\n \"show_startup\": True,\n \"show_shutdown\": True,\n \"show_beat\": True,\n \"show_broker\": False,\n \"use_fixed_width\": True,\n \"include_tasks\": None,\n \"exclude_tasks\": None,\n \"failures_only\": False,\n \"webhook\": None,\n \"beat_schedule\": None,\n \"beat_show_full_task_path\": False,\n }\n\n\nAny subset of these options can be passed to the constructor in the form\nof keyword arguments. e.g.\n\n.. code-block:: python\n\n options = {\n # Some subset of options\n }\n app = Celery('project')\n slack_app = Slackify(app, SLACK_WEBHOOK, **options)\n\n\nMost of the options are self explanatory, but here are some additional details:\n\n* **slack_\\*_color**: The left vertical bar color associated with the slack message attachments\n* **slack_request_timeout**: The Slack message request timeout in seconds\n* **flower_base_url**: e.g. https://flower.example.com, if provided, the slack message titles will link to task pages in `Flower `_\n* **show_task_id**: Show the uuid for the task.\n* **show_task_execution_time**: Show time to complete task in minutes/seconds\n* **show_celery_hostname**: Show the machine hostname on celery/beat messages\n* **show_task_args**: Show the task's args\n* **show_task_kwargs**: Show the task's keyword args\n* **show_task_exception_info**: Show the traceback for failed tasks\n* **show_task_return_value**: Show the return value of a successful task\n* **show_task_prerun**: Post messages at start of task execution\n* **show_startup**: Post message when celery starts\n* **show_shutdown**: Post message when celery stops\n* **show_beat**: Post message when beat starts\n* **show_broker**: Post messages when celery/beat disconnect from or reconnect to the broker\n* **use_fixed_width**: Use slack fixed width formatting for args, kwargs, retval, and exception info\n* **include_tasks**: A list of task paths to include. If used, post task messages only for these tasks. Uses regex pattern matching. e.g. ``module.submodule.taskname`` for a specific task or just ``module.submodule`` for all tasks in that submodule. Cannot be used in conjunction with ``exclude_tasks``.\n* **exclude_tasks**: A list of task paths to exclude. If used, suppress task messages only for these tasks. All other tasks will generate slack messages. Cannot be used in conjunction with ``include_tasks``. Uses regex pattern matching.\n* **failures_only**: Only post messages on task failures.\n* **webhook**: The only required parameter. A slack webhook corresponding to a slack channel.\n* **beat_schedule**: The celery beat schedule. If provided, the beat_init message will display the schedule.\n* **beat_show_full_task_path**: Show the full module-task path. If False (default) only show `submodule.taskname`.\n\n\nWarnings\n--------\n\nNote that Slack has `rate limits for incoming webhook requests `_\nwhich is more or less 1 request per second.\nThis extension makes little effort to abide by these rate limits. You should\nensure that your implementation of celery-slack does not violate these limits\nby adjusting your task schedule or restricting the set of tasks which generate\nSlack messages using the ``include_tasks`` or ``exclude_tasks`` options.\n\nIf a webhook response contains response code 429, celery-slack will suppress\nall messages for a time period given by the Retry-After response header. Upon\nreturning, celery-slack will post a WARNING message to Slack.\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/crflynn/celery-slack", "keywords": "celery,slack", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "celery-slack", "package_url": "https://pypi.org/project/celery-slack/", "platform": "", "project_url": "https://pypi.org/project/celery-slack/", "project_urls": { "Homepage": "https://github.com/crflynn/celery-slack", "Repository": "https://github.com/crflynn/celery-slack" }, "release_url": "https://pypi.org/project/celery-slack/0.4.1/", "requires_dist": [ "celery (>=3.1,<5.0)", "ephem (>=3.7,<4.0)", "requests (>=2.22,<3.0)" ], "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "summary": "A Slack extension for Celery.", "version": "0.4.1" }, "last_serial": 5976526, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "497d45167b155435c7b8e2601eaa4763", "sha256": "a82ff9714cccd66de979f01519b480859e5392c3a859998d9b6c2a45c0df5bbd" }, "downloads": -1, "filename": "celery_slack-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "497d45167b155435c7b8e2601eaa4763", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12389, "upload_time": "2017-11-27T00:26:25", "url": "https://files.pythonhosted.org/packages/8c/be/463ea685f4645345f7963274e3a098e339a0d49a7f9a1fe9464ff14c8c62/celery_slack-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "633d3f7b7a3372f3b24acd1131e9c869", "sha256": "993b2424df8408cbfa3e948bda6a13c996a9c37060c1c066f17adea011fa4e78" }, "downloads": -1, "filename": "celery-slack-0.1.0.tar.gz", "has_sig": false, "md5_digest": "633d3f7b7a3372f3b24acd1131e9c869", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8744, "upload_time": "2017-11-27T00:26:26", "url": "https://files.pythonhosted.org/packages/db/90/d3ba6e86c43d159a3fadb3564089cec4e413ffdcc573880460a9e9524c2d/celery-slack-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c30c8db25ff070dc75fe5bb53b012a77", "sha256": "dbc85fae20ee835c31da3346472059527991f361ee8e3787dd0a3d66ef76cbc1" }, "downloads": -1, "filename": "celery_slack-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c30c8db25ff070dc75fe5bb53b012a77", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12429, "upload_time": "2017-11-27T03:33:06", "url": "https://files.pythonhosted.org/packages/af/5b/29fc98490e0212f6302a6a544a35928ba9cc737a48bbf3ae69c71c3d8a49/celery_slack-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6059676cb8df62ee0ec16e9718355da5", "sha256": "5d6fd12fd0de5a7c96bd8d63cf717fcb0115015994c368fd976e39a57c826309" }, "downloads": -1, "filename": "celery-slack-0.1.1.tar.gz", "has_sig": false, "md5_digest": "6059676cb8df62ee0ec16e9718355da5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8743, "upload_time": "2017-11-27T03:33:07", "url": "https://files.pythonhosted.org/packages/e4/4d/593e51d7ae63888649f2b1528b72e572166b69524cdc86a33e6cd875572f/celery-slack-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "9cd502dcc250c8892a315ea568511087", "sha256": "5e365083e3a3d27cd141b2b0ea7a903ae321ea1d18c47c054293914c39d32b20" }, "downloads": -1, "filename": "celery_slack-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9cd502dcc250c8892a315ea568511087", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12604, "upload_time": "2017-11-27T10:13:24", "url": "https://files.pythonhosted.org/packages/52/a5/886011391ef1a4f9f20aea914c246a3e9c0a8d7fe6843f73e7ca79892c8c/celery_slack-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b046bfa0ac738e86079f50df3bce498", "sha256": "6a70efacbe316ab114445c6b4d3fec3c2b675b35e012503cb4f5a69c466b3fdc" }, "downloads": -1, "filename": "celery-slack-0.1.2.tar.gz", "has_sig": false, "md5_digest": "8b046bfa0ac738e86079f50df3bce498", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8969, "upload_time": "2017-11-27T10:13:26", "url": "https://files.pythonhosted.org/packages/93/fa/8a0c343fbf00441e997861a99a0ff79dc25f11f2e9322e28dbe0f2739f39/celery-slack-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "3d75fa587a1ee018aee4f02d51f84db6", "sha256": "696fc1b505004686aab4be05db6fb0b5051de9c84b640055cc288b21540d4089" }, "downloads": -1, "filename": "celery_slack-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3d75fa587a1ee018aee4f02d51f84db6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12699, "upload_time": "2017-11-29T00:02:12", "url": "https://files.pythonhosted.org/packages/71/4e/8e42521b816cc25e20e9c5191d457c77039b8fabbe95807972573018f40e/celery_slack-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "632583ecb26f238ce5e2ae9a22a18ddf", "sha256": "42d0d64e65250bb3d02ef486c4a571f4722414aed47fea587843695566e7eef7" }, "downloads": -1, "filename": "celery-slack-0.1.3.tar.gz", "has_sig": false, "md5_digest": "632583ecb26f238ce5e2ae9a22a18ddf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9121, "upload_time": "2017-11-29T00:02:13", "url": "https://files.pythonhosted.org/packages/8e/67/dac6837c0059af09fdc37c28d7cafffbf18838e1dfa18c4b954e71467da1/celery-slack-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "c672a49ef4ef02ab722d585b4943b039", "sha256": "ec494e108ccd4ac876f1e71407fff50cf5a985818fac140ad7a74a044af60577" }, "downloads": -1, "filename": "celery_slack-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c672a49ef4ef02ab722d585b4943b039", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12808, "upload_time": "2018-01-18T04:39:38", "url": "https://files.pythonhosted.org/packages/80/65/20ac6f4a722246b7ceeaba7987c111a21e1d0610d046331edd15dc7173d4/celery_slack-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d84ddec4b6f9ad6ca3c10db3cbdbe5bb", "sha256": "bc2b2365a67c85b2d6d4f46a6c5a8b5dfe256573b449c1553dc6f280c66ffa3c" }, "downloads": -1, "filename": "celery-slack-0.1.4.tar.gz", "has_sig": false, "md5_digest": "d84ddec4b6f9ad6ca3c10db3cbdbe5bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9256, "upload_time": "2018-01-18T04:39:39", "url": "https://files.pythonhosted.org/packages/58/0b/c33d95d21ba1a77040f71dab39933ae0b22e4940244a1656651e608765ec/celery-slack-0.1.4.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "91e1843b01720f98f1aea92a5463c03c", "sha256": "91337a60c740c42959b1c4f5931d8a979a0787bc5010fd1bc44a22691ca71b0c" }, "downloads": -1, "filename": "celery_slack-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "91e1843b01720f98f1aea92a5463c03c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12939, "upload_time": "2018-06-10T05:08:25", "url": "https://files.pythonhosted.org/packages/0b/9d/0d2c7c19dcb122b936a41b2291b2b15555dee5f081e989bf6f3bfb30845e/celery_slack-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4463d60093048db5811e4250d2ae9c11", "sha256": "ff57c6cf40910b434bc8892a6d5f3defdebc508b4fd583d8dcf8242c59861043" }, "downloads": -1, "filename": "celery-slack-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4463d60093048db5811e4250d2ae9c11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9374, "upload_time": "2018-06-10T05:08:27", "url": "https://files.pythonhosted.org/packages/79/12/51b39106e3f08ff68cef2ab0d0829254c78ec85a2c0ff9e53167441090d8/celery-slack-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "ca4f710f8d104e1ed8d6a8204c057c15", "sha256": "a5a680f8c62d9845613b25d04e3daff5369b023466ba6ed432a457ace8a3abe4" }, "downloads": -1, "filename": "celery_slack-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ca4f710f8d104e1ed8d6a8204c057c15", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13978, "upload_time": "2018-06-16T18:44:08", "url": "https://files.pythonhosted.org/packages/c2/42/28f0a29147b1d60ccf247f3ea56613fde2e299d1a1d87b5bf7bee0e4d331/celery_slack-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9faf17a185ca93960380694c34881898", "sha256": "da1f1ddfe60a10a5bb79bd8a30bc2367088d5bdb9b56f3a207f785e0d5be7dd6" }, "downloads": -1, "filename": "celery-slack-0.3.0.tar.gz", "has_sig": false, "md5_digest": "9faf17a185ca93960380694c34881898", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10358, "upload_time": "2018-06-16T18:44:10", "url": "https://files.pythonhosted.org/packages/d4/a3/b30975429d8b814b04a18a494b66265e5c6604eeea3021b0ff1607a0df93/celery-slack-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "48ea13468b301ebc23517b1a7ce88b67", "sha256": "f40b3edb77653ee838d3fcfd064f4502584138440fac93c5febac5ecd695e402" }, "downloads": -1, "filename": "celery_slack-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "48ea13468b301ebc23517b1a7ce88b67", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 12092, "upload_time": "2019-10-13T14:59:31", "url": "https://files.pythonhosted.org/packages/b3/c4/9c2c7e0e2633f2b573c1fcb7f0df333ece14f1af5a9d343b91649a2bef9e/celery_slack-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7790e4e66fbd40509ed806a080d65e0a", "sha256": "adee2672fd94cb03da5681f3dc547cf27b2ac5b45e67742dec7c70575b5bb71a" }, "downloads": -1, "filename": "celery_slack-0.4.0.tar.gz", "has_sig": false, "md5_digest": "7790e4e66fbd40509ed806a080d65e0a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 12951, "upload_time": "2019-10-13T14:59:33", "url": "https://files.pythonhosted.org/packages/b8/13/98c5823c6c833a57718617af86cb4d425235abd54d337e8719aee07ce793/celery_slack-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "4750d11cf5bd11708824a92464882356", "sha256": "7c9bdfe25045033b605221f8eb2004ee39a066aab53080366086327a05f18339" }, "downloads": -1, "filename": "celery_slack-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4750d11cf5bd11708824a92464882356", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 12105, "upload_time": "2019-10-15T12:05:20", "url": "https://files.pythonhosted.org/packages/70/10/171617fc50b901736d2959e13ac60b847922d605574e80e8d7180976a939/celery_slack-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9c70fac5bbc80f5ec089268cd6f67071", "sha256": "6ad21dbd30e046d0a1688415f7d955cc3dac0a49ca5cb63aa62d23b1cb3ba7d8" }, "downloads": -1, "filename": "celery_slack-0.4.1.tar.gz", "has_sig": false, "md5_digest": "9c70fac5bbc80f5ec089268cd6f67071", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 12974, "upload_time": "2019-10-15T12:05:22", "url": "https://files.pythonhosted.org/packages/b9/fc/4a07f01c8eeed87e5fe52b7de3c5e50623e80a39e3f0e31ee7db6d5afa7d/celery_slack-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4750d11cf5bd11708824a92464882356", "sha256": "7c9bdfe25045033b605221f8eb2004ee39a066aab53080366086327a05f18339" }, "downloads": -1, "filename": "celery_slack-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4750d11cf5bd11708824a92464882356", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 12105, "upload_time": "2019-10-15T12:05:20", "url": "https://files.pythonhosted.org/packages/70/10/171617fc50b901736d2959e13ac60b847922d605574e80e8d7180976a939/celery_slack-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9c70fac5bbc80f5ec089268cd6f67071", "sha256": "6ad21dbd30e046d0a1688415f7d955cc3dac0a49ca5cb63aa62d23b1cb3ba7d8" }, "downloads": -1, "filename": "celery_slack-0.4.1.tar.gz", "has_sig": false, "md5_digest": "9c70fac5bbc80f5ec089268cd6f67071", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 12974, "upload_time": "2019-10-15T12:05:22", "url": "https://files.pythonhosted.org/packages/b9/fc/4a07f01c8eeed87e5fe52b7de3c5e50623e80a39e3f0e31ee7db6d5afa7d/celery_slack-0.4.1.tar.gz" } ] }