{ "info": { "author": "Damien Le Bourdonnec", "author_email": "greumsworkshop@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Communications :: Chat", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Logging" ], "description": "logging-slackhandler\n====================\n\n|Version| |Status| |Python| |License| |Build| |Thanks|\n\nIntroduction\n------------\n\nThis module provides additionals handler, formatter and filter for the logging\npackage, so you can send Python log records to a Slack Incoming Webhook.\n\nCredits\n-------\n\nThis module is widely inspired by `Junhwi Kim `_'s\nwork on `python-slack-logger `_.\n\nHow it works\n------------\n\nIn order to send records to Slack without slowing down code run, messages are\nposted in background by a threads pool, while new records are added to the\nqueue.\n\nIn case of network delays or disconnection, app execution while not be blocked\nwaiting for post response.\n\nInstallation\n------------\n\nYou can install, upgrade or uninstall logging-slackhandler using pip:\n\n.. code-block:: bash\n\n pip install logging-slackhandler\n pip install --upgrade logging-slackhandler\n pip uninstall logging-slackhandler\n\nUsage\n-----\n\nSlackHandler\n~~~~~~~~~~~~\n\n``SlackHandler`` instances dispatch logging events to Slack Incoming Webhook.\n\nHere is the list of its parameters:\n\n :webhook_url: Slack Incoming Webhook URL.\n :username: (optional) message sender username.\n :channel: (optional) Slack channel to post to.\n :icon_emoji: (optional) customize emoji for message sender.\n :timeout: (optional) specifies a timeout in seconds for blocking operations.\n :pool_size: (optional) specifies number of workers processing records queue.\n\nThe following example shows how to send records to a Slack Incoming Webhooks:\n\n.. code-block:: python\n\n import logging\n from SlackLogger import SlackHandler\n\n logger = logging.getLogger(__name__)\n logger.setLevel(logging.DEBUG)\n\n slack_handler = SlackHandler('YOUR_WEBHOOK_URL')\n logger.addHandler(slack_handler)\n\n for level in ['debug', 'info', 'warning', 'error', 'critical']:\n getattr(logger, level)('This is a `%s` message', level)\n\nSlackFormatter\n~~~~~~~~~~~~~~\n\n``SlackFormatter`` instances format log record and return a dictionary that can\nbe sent as a Slack message attachment.\n\nHere is the list of its parameters:\n\n :attr: (optional) custom attachment parameters to record attributes dictionary.\n :lvl_color: (optional) custom record levels to colors dictionary.\n\nYou can customize the appearance of Slack message with ``attr`` parameter, to bind a\n`Slack attachment property `_\nto a record attribute. Empty strings will not be displayed in message.\n\nAlso, ``lvl_color`` parameter let you customize color-coding messages, binding a record\nlevelname to an hex color code or Slack special codes (``good``, ``warning``, ``danger``).\n\n.. code-block:: python\n\n from SlackLogger import SlackFormatter\n\n attr={'pretext': '*Look at me!*', 'title': ''}\n lvl_color={'INFO': 'good'}\n\n slack_handler.setFormatter(SlackFormatter(attr=attr, lvl_color=lvl_color))\n\n logger.info('Hi there!')\n\nSlackFilter\n~~~~~~~~~~~\n\n``SlackFilter`` instances can be use to determine if the specified record is to\nbe sent to Slack Incoming Webhook.\n\nHere is the list of its parameters:\n\n :allow: filtering rule for log record.\n\nYou can use ``SlackFilter`` to allow only some records to be sent. When\n``SlackFilter`` is defined, records will not be sent to Slack unless you\nexplicitly ask it for by adding ``extra`` argument, as in following example:\n\n.. code-block:: python\n\n from SlackLogger import SlackFilter\n\n logger.addFilter(SlackFilter())\n\n logger.debug('This is a debug message')\n logger.info('Hi there!', extra={'slack': True})\n\nTo have the opposite behavior (sent record by default), just set ``allow``\nparameter to ``True`` when creating ``SlackFilter``:\n\n.. code-block:: python\n\n from SlackLogger import SlackFilter\n\n logger.addFilter(SlackFilter(allow=True))\n\n logger.debug('This is a debug message', extra={'slack': False})\n logger.info('Hi there!')\n\nGood to know\n------------\n\nMessages order\n~~~~~~~~~~~~~~\n\nMessages are processed in a FIFO order from the queue, but due to network\nlatency, Slack response time or message length, concurrent messages can appear\nin a different order in destination channel than the one you sent them.\n\nIf message order is a requirement, you can define SlackHandler with a pool size\nof 1, so that only one thread will process the queue:\n\n.. code-block:: python\n\n slack_handler = SlackHandler('YOUR_WEBHOOK_URL', pool_size=1)\n\nLicense\n-------\n\nCopyright (c) 2017 Damien Le Bourdonnec\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n.. |Version| image:: https://img.shields.io/pypi/v/logging-slackhandler.svg?colorB=ee2269\n :target: https://pypi.python.org/pypi/logging-slackhandler\n :alt: Package Version\n.. |Status| image:: https://img.shields.io/pypi/status/logging-slackhandler.svg\n :target: https://pypi.python.org/pypi/logging-slackhandler\n :alt: Development Status\n.. |Python| image:: https://img.shields.io/pypi/pyversions/logging-slackhandler.svg?colorB=fcd20b\n :target: https://pypi.python.org/pypi/logging-slackhandler\n :alt: Python Version\n.. |License| image:: https://img.shields.io/pypi/l/logging-slackhandler.svg\n :target: https://pypi.python.org/pypi/logging-slackhandler\n :alt: License\n.. |Build| image:: https://img.shields.io/travis/Greums/logging-slackhandler.svg\n :target: https://travis-ci.org/Greums/logging-slackhandler\n :alt: Build Status\n.. |Thanks| image:: https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg\n :target: https://saythanks.io/inbox#badge-modal\n :alt: Say Thanks!\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/Greums/logging-slackhandler/tarball/2.5.0", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Greums/logging-slackhandler", "keywords": "logging slack", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "logging-slackhandler", "package_url": "https://pypi.org/project/logging-slackhandler/", "platform": "any", "project_url": "https://pypi.org/project/logging-slackhandler/", "project_urls": { "Download": "https://github.com/Greums/logging-slackhandler/tarball/2.5.0", "Homepage": "https://github.com/Greums/logging-slackhandler" }, "release_url": "https://pypi.org/project/logging-slackhandler/2.5.0/", "requires_dist": null, "requires_python": "", "summary": "A logging handler for Slack", "version": "2.5.0" }, "last_serial": 3389972, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "3ea71e6bb55797c153249dfc1d19411e", "sha256": "e5f1e6201b30493448481b77f427b55cdada51a126800a7ee760cfe5786cd2c6" }, "downloads": -1, "filename": "logging_slackhandler-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3ea71e6bb55797c153249dfc1d19411e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4394, "upload_time": "2017-10-09T12:12:10", "url": "https://files.pythonhosted.org/packages/20/41/d6d65c79187730710c9e281cb39928a57c8ba6983384eb21e8beb5ebfd56/logging_slackhandler-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "81f6a8eb68807c187086d292ac240b4a", "sha256": "048cfe4167da0fd8d814bdf559f6036f044d32b3ffa7b5d740f71e9874885eb0" }, "downloads": -1, "filename": "logging-slackhandler-0.0.1.tar.gz", "has_sig": false, "md5_digest": "81f6a8eb68807c187086d292ac240b4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2960, "upload_time": "2017-10-09T12:12:11", "url": "https://files.pythonhosted.org/packages/75/72/e758d6adb993ad5adb02f8501400d158cfa44e196be14217856ca65d5fc8/logging-slackhandler-0.0.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "1cf4d4ce454e76f5960e0af254fed6e7", "sha256": "582fbbe0bd4ef0b0cd5b436e1e2d854d463692c096ed56a5e49644d459d29aaf" }, "downloads": -1, "filename": "logging_slackhandler-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1cf4d4ce454e76f5960e0af254fed6e7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5781, "upload_time": "2017-10-13T22:00:38", "url": "https://files.pythonhosted.org/packages/0a/72/d01b5eef1bb6c35c60dae84f6507e1fac077dc9e619de3bea986eabfcb00/logging_slackhandler-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d22cdb11cafd82f884a51e446707539e", "sha256": "bedf12ad1f7a9b55b8e1a6b4e87f3307a1b25cab00b3ae82cba3bd45812ad838" }, "downloads": -1, "filename": "logging-slackhandler-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d22cdb11cafd82f884a51e446707539e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3783, "upload_time": "2017-10-13T22:00:39", "url": "https://files.pythonhosted.org/packages/f9/d5/bf43b1d97491a8b487e1720ea0b23477e3228336be92a28368130481d622/logging-slackhandler-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "7a7880a42e55fdf89f4a18e2d45cb15c", "sha256": "2916c9ed2068c31bd88df239c6dd206a85fd2a907b15f423b515bd3fd3cf89f3" }, "downloads": -1, "filename": "logging_slackhandler-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7a7880a42e55fdf89f4a18e2d45cb15c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5725, "upload_time": "2017-10-13T22:22:15", "url": "https://files.pythonhosted.org/packages/9b/b1/ad67306dae69ad7fa0ad193940f6a537737cc801f5495ddbca4bb9606f9a/logging_slackhandler-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a51fd1d14085f0c375427c1d1cc23330", "sha256": "eacd58876579d7b84805b65e7be47eedff82f277a786ab23059d8578481de1b6" }, "downloads": -1, "filename": "logging-slackhandler-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a51fd1d14085f0c375427c1d1cc23330", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3689, "upload_time": "2017-10-13T22:22:17", "url": "https://files.pythonhosted.org/packages/37/ba/debeefeb586bf42ad9cc5f546d13931dd29eb798c5f6db852a53bbae5af5/logging-slackhandler-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "1e18765cc74fc573c4756ee318b4ae2f", "sha256": "512d748a85a0fe44ea63d9c0775348b67ec14afd7f29a19e11f316e62c63da68" }, "downloads": -1, "filename": "logging_slackhandler-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1e18765cc74fc573c4756ee318b4ae2f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5727, "upload_time": "2017-10-13T22:56:13", "url": "https://files.pythonhosted.org/packages/c3/77/a877bf9729d13ecc5d4e006f9f7f264c3b9c123ba4af332457152e96d55f/logging_slackhandler-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad0b7896e095c28a689ea776c31bfbde", "sha256": "1169b4714f098cc572d3e15225f086ad7ac3bbd8df9c772d01f9a88b44a81b56" }, "downloads": -1, "filename": "logging-slackhandler-1.0.2.tar.gz", "has_sig": false, "md5_digest": "ad0b7896e095c28a689ea776c31bfbde", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3689, "upload_time": "2017-10-13T22:56:14", "url": "https://files.pythonhosted.org/packages/90/9e/2f4bd5a9a23e90520547d74aeb5b0403faa36e04e8c9e12ed928de036afa/logging-slackhandler-1.0.2.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "1d1455e24854c7ae94502d9943972520", "sha256": "5b1091e5cd74847c4277ae56ba32d0ea7ae038988b8803f520f062a474d0ebbe" }, "downloads": -1, "filename": "logging_slackhandler-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1d1455e24854c7ae94502d9943972520", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6511, "upload_time": "2017-10-14T11:31:48", "url": "https://files.pythonhosted.org/packages/36/a1/13e3b0bdeb291a0a7e6382fa6d4ec8ccec2636418bb6cac8a365795727fd/logging_slackhandler-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7f9b88a17fd53595fd1f061663bff88", "sha256": "f0827602e73679e12390b683338526d356fac55dde5c4abce6aeffedd651fbf1" }, "downloads": -1, "filename": "logging-slackhandler-2.0.0.tar.gz", "has_sig": false, "md5_digest": "d7f9b88a17fd53595fd1f061663bff88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4231, "upload_time": "2017-10-14T11:31:49", "url": "https://files.pythonhosted.org/packages/e1/23/d6b1128f4dcd543f90a0b191102bd55d603b491f05af1f51eada40302e31/logging-slackhandler-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "e9cbcd295ab8e0a32c147018f995d646", "sha256": "f7887c7fcd7a7e26ecba7fcdbf3d668735e25677c1f9c176dea2feed3e21d8ed" }, "downloads": -1, "filename": "logging_slackhandler-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e9cbcd295ab8e0a32c147018f995d646", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6995, "upload_time": "2017-10-15T18:06:15", "url": "https://files.pythonhosted.org/packages/78/b4/3a3d2938d38038b5116abeee0215d7884801047ba3762cd9e8037a5a09b0/logging_slackhandler-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9034dcc82c4277338802609bc77b27b5", "sha256": "d9f7405577f77443b196b457de74aee69ea8f0db4724ec70e7c1a2d66c62ed51" }, "downloads": -1, "filename": "logging-slackhandler-2.1.0.tar.gz", "has_sig": false, "md5_digest": "9034dcc82c4277338802609bc77b27b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4720, "upload_time": "2017-10-15T18:06:16", "url": "https://files.pythonhosted.org/packages/b2/70/df331f5f3e322705a00ebcb28ace3e5bbb709450269f79472e65e45755be/logging-slackhandler-2.1.0.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "8abca7d80ebd810332392fa061f1ae93", "sha256": "bffcec38f9b19ec3083c4eaed5ae7926c9631c2bee6ccddbc275470c0f64ab50" }, "downloads": -1, "filename": "logging_slackhandler-2.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8abca7d80ebd810332392fa061f1ae93", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8313, "upload_time": "2017-10-21T14:35:33", "url": "https://files.pythonhosted.org/packages/c5/be/39985bd21d0775346af1afb50a51de4caf2ff6fabd5280155d4840bf95bb/logging_slackhandler-2.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "df390ecc6c72a478b5415a9dd8802adc", "sha256": "3c80f282b54488ec51ee28da851452e63c5c24edd8397f9dbf9d22c6deff9ef9" }, "downloads": -1, "filename": "logging-slackhandler-2.2.0.tar.gz", "has_sig": false, "md5_digest": "df390ecc6c72a478b5415a9dd8802adc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5367, "upload_time": "2017-10-21T14:35:34", "url": "https://files.pythonhosted.org/packages/c9/89/fe6ce06611e9963a9b648765f8863ad6e175c71f603697909aa9c31a9ec5/logging-slackhandler-2.2.0.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "721e7f8e2696e8c0c26daaaea20a161a", "sha256": "14489d1d738a96fe89ee0fce6be6752e3434b68f9132cc3bc68ed8cfe10c82e2" }, "downloads": -1, "filename": "logging_slackhandler-2.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "721e7f8e2696e8c0c26daaaea20a161a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9304, "upload_time": "2017-10-22T17:24:40", "url": "https://files.pythonhosted.org/packages/8e/58/f0091e98baabd109e3694814ab6e2cce0e29e8b6bbfb358cd0ef1b88317b/logging_slackhandler-2.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d3eb392d108aec70ced8f98a1e28f4c4", "sha256": "52584f9ab261cd6535865dfa6b5593211ac76d850c9212c6f376f32440f51c68" }, "downloads": -1, "filename": "logging-slackhandler-2.3.0.tar.gz", "has_sig": false, "md5_digest": "d3eb392d108aec70ced8f98a1e28f4c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6005, "upload_time": "2017-10-22T17:24:41", "url": "https://files.pythonhosted.org/packages/f9/df/fab7f1d4e00a6be032ad300828f8740e8c5d436e724645dac786d07c06ad/logging-slackhandler-2.3.0.tar.gz" } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "0841298b301545e2e29d4baf6e4cc4f7", "sha256": "24c7d8e13f0b5e2b879f80570a8223feb566e2c9186849eb48a729f00702cf7e" }, "downloads": -1, "filename": "logging_slackhandler-2.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0841298b301545e2e29d4baf6e4cc4f7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9293, "upload_time": "2017-10-22T19:24:48", "url": "https://files.pythonhosted.org/packages/d3/f5/8ef51bf1dcafcb3187b3088daf5506a46bd55f8ec368dd49b8cf8160078c/logging_slackhandler-2.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f43103134c1f0fb158252485efc253c1", "sha256": "64d97c07e1bd763d931758fd53a96b97845d984e7988d0ca8037c2a86ded9dd7" }, "downloads": -1, "filename": "logging-slackhandler-2.4.0.tar.gz", "has_sig": false, "md5_digest": "f43103134c1f0fb158252485efc253c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5998, "upload_time": "2017-10-22T19:24:50", "url": "https://files.pythonhosted.org/packages/06/13/794b2a815b4ee3f4fca20652877e65ed7a6aab579a9c6905402ab67c1435/logging-slackhandler-2.4.0.tar.gz" } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "cb739bd4b4a54085a0a6202f64bb9be3", "sha256": "371e4a76fb4aad6ba3a3172403cb714c0e4ce4ca9f0b0d9c8cbabd40fa3b36bc" }, "downloads": -1, "filename": "logging_slackhandler-2.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb739bd4b4a54085a0a6202f64bb9be3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9824, "upload_time": "2017-12-05T09:34:26", "url": "https://files.pythonhosted.org/packages/be/16/627bcab236f956aecb0f822ad7dbfb284f678feebc892a372a5345da61e5/logging_slackhandler-2.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "467267ba0ba334f91a9dd84d8c869360", "sha256": "172af94f22caf228d74c0ee4d8c752b5bc267a0cd5a34cc9de38f427429f7ca5" }, "downloads": -1, "filename": "logging-slackhandler-2.5.0.tar.gz", "has_sig": false, "md5_digest": "467267ba0ba334f91a9dd84d8c869360", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6362, "upload_time": "2017-12-05T09:34:27", "url": "https://files.pythonhosted.org/packages/b9/90/f8abfcf4ac19c9181bcc7b11abca18055af6d219fa02cac06ad813ee6f66/logging-slackhandler-2.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cb739bd4b4a54085a0a6202f64bb9be3", "sha256": "371e4a76fb4aad6ba3a3172403cb714c0e4ce4ca9f0b0d9c8cbabd40fa3b36bc" }, "downloads": -1, "filename": "logging_slackhandler-2.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb739bd4b4a54085a0a6202f64bb9be3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9824, "upload_time": "2017-12-05T09:34:26", "url": "https://files.pythonhosted.org/packages/be/16/627bcab236f956aecb0f822ad7dbfb284f678feebc892a372a5345da61e5/logging_slackhandler-2.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "467267ba0ba334f91a9dd84d8c869360", "sha256": "172af94f22caf228d74c0ee4d8c752b5bc267a0cd5a34cc9de38f427429f7ca5" }, "downloads": -1, "filename": "logging-slackhandler-2.5.0.tar.gz", "has_sig": false, "md5_digest": "467267ba0ba334f91a9dd84d8c869360", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6362, "upload_time": "2017-12-05T09:34:27", "url": "https://files.pythonhosted.org/packages/b9/90/f8abfcf4ac19c9181bcc7b11abca18055af6d219fa02cac06ad813ee6f66/logging-slackhandler-2.5.0.tar.gz" } ] }