{
"info": {
"author": "Dmitry Berezovsky",
"author_email": "",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Topic :: Software Development :: Build Tools"
],
"description": "\nHealthcheck Bot\n===============\n\n\n.. image:: https://travis-ci.org/Logicify/healthcheckbot.svg?branch=master\n :target: https://travis-ci.org/Logicify/healthcheckbot\n :alt: Build Status\n\n\n.. image:: https://img.shields.io/github/license/logicify/healthcheckbot.svg\n :target: https://img.shields.io/github/license/logicify/healthcheckbot.svg\n :alt: License\n\n\n.. image:: https://img.shields.io/pypi/v/healthcheckbot.svg\n :target: https://img.shields.io/pypi/v/healthcheckbot.svg\n :alt: PyPi\n\n\n.. image:: https://img.shields.io/github/last-commit/logicify/healthcheckbot.svg\n :target: https://img.shields.io/github/last-commit/logicify/healthcheckbot.svg\n :alt: Last Commit\n\n\n.. image:: https://requires.io/github/Logicify/healthcheckbot/requirements.svg?branch=master\n :target: https://requires.io/github/Logicify/healthcheckbot/requirements/?branch=master\n :alt: Requirements Status\n\n\n.. image:: https://app.fossa.io/api/projects/git%2Bgithub.com%2FLogicify%2Fhealthcheckbot.svg?type=shield\n :target: https://app.fossa.io/projects/git%2Bgithub.com%2FLogicify%2Fhealthcheckbot?ref=badge_shield\n :alt: FOSSA Status\n\n\nHealthcheck Bot is a standalone, highly configurable and extendable, application for verifying the status of your software products.\nThe user is free to configure which targets to test, which metrics to monitor, and where to store check outcomes. Healthcheck Bot also supports custom assertions written in Python for more sophisticated check scenarios.\n\nWhen Should I Use Healthcheck Bot?\n----------------------------------\n\nConsider using Healthcheck Bot if:\n\n\n* you need proactive monitoring of your software. This means you have an existing application in place, and you need to query it, regularly capture its state and compare it to the expected one;\n* you want to load the outcomes of proactive healthchecks into existing infrastructure (Graylog, Nagios, whatever)\n* the validation of your system state requires more complex comparations than the ones defined in DSL\\Yaml\\JSON, which are easier to express with code.\n* you are familiar with Python.\n\nAlternative Solutions\n---------------------\n\nIf none of the above describes your case, you might want to consider one of the following alternatives:\n\n\n* `Nagios `_ and its application checks\n* `Goss `_ if you need just servers pings, ports checks, server configuration etc.\n\nHealthcheck Bot Usage\n---------------------\n\nThe package provides executable ``healthcheckbot`` as the main entry point. You must pass a configuration file containing definitions of\nyour watchers and other options. In order to start the application, run:\n\n.. code-block::\n\n healthcheckbot -c examples/config.yaml run\n\nIf you prefer Docker, there is a pre-built image available. You need to create a config file somewhere on host machine and run Docker as follows:\n\n.. code-block:: bash\n\n docker run --rm -it -v $PWD/myconfigs:/srv/config logicify/healthcheckbot\n\nIn this case, your config must be named ``config.yaml``\\ ; it must be located in ``./myconfigs`` directory on your host machine.\n\nIf you want to use a different file, you could set it in env variable ``CONFIG_FILE``\\ :\n\n.. code-block:: bash\n\n docker run --rm -it -v $PWD/myconfigs:/srv/config -e CONFIG_FILE=/srv/config/advanced.yaml logicify/healthcheckbot\n\nFor the cases when you also need to pass your custom modules, e.g. custom assertions, you need to mount data directory as well. Check the following example:\n\ndocker-compose.yaml\n\n.. code-block:: yaml\n\n healthcheckbot:\n image: logicify/healthcheckbot\n volumes:\n - ./myconfig:/srv/config\n - ./mydata:/srv/data\n environment:\n CONFIG_FILE: /srv/config/my_config_name.yaml\n\nmy_config_name.yaml\n\n.. code-block:: yaml\n\n app:\n classpath:\n - /srv/data\n\n outputs:\n console:\n provider: healthcheckbot.outputs.ConsoleOutput\n\n triggers:\n each_1_minute:\n provider: healthcheckbot.triggers.SimpleTimer\n interval: 60\n\n watchers:\n google_home:\n provider: healthcheckbot.watchers.HttpRequest\n url: http://google.com\n assert_response_time: 2\n assert_status: 200\n triggers:\n - each_1_minute\n custom_assertions:\n check_something_interesting:\n provider: mypackage.assertions.CustomAssert\n my_param: 'val1'\n\nIn this sample, we mount directory ``/srv/data`` from the host and declare it as a part of classpath, so all Python modules from this dir are accessible from the application in runtime. Thus, we can implement ``CustomAssert`` module and use it in our configuration. See `Customization <#customization>`_ section for details.\n\nConcepts\n--------\n\nConsider the following configuration example:\n\n.. code-block:: yaml\n\n outputs:\n console:\n provider: healthcheckbot.outputs.ConsoleOutput\n\n triggers:\n each_1_minute:\n provider: healthcheckbot.triggers.SimpleTimer\n interval: 60\n\n watchers:\n google_home:\n provider: healthcheckbot.watchers.HttpRequest\n url: http://google.com\n assert_status: 200\n triggers:\n - each_1_minute\n\nIn this example, we define a single watcher that will send HTTP request to ``http://google.com`` each minute.\nHealthcheck will be treated as failed when the response status is not ``200``.\nThe result of the watcher evaluation will be printed to STDOUT.\n\nGenerally, there are 4 types of entities (module types) Healthcheck Bot works with: Outputs, Triggers, Watchers, WatcherAsserts.\nSections below describe each of them. Please also note that user is able to implement their own module to extend or override default behaviour and connect it without modifying the core code. See `Customization <#customization>`_ section below.\nRegardless of the module type you define, there is a mandatory component called ``provider``. It defines fully qualified name\nof the class implementing corresponding module. The rest of options are parameters for module instance.\n\nOutputs\n^^^^^^^\n\nOutput defines the way watcher's evaluation result will be delivered to the end user. It might be as simple as just console output\nor a more real-life and common record in a database, or a centralized metric collection for a system like CloudWatch or Graylog2.\n\nThere is a couple of implementations of outputs built in the package.\n\nConsole Output\n~~~~~~~~~~~~~~\n\nJust prints serialized JSON output to the STDOUT. There are no configuration parameters.\n\nUsage Example:\n\n.. code-block:: yaml\n\n outputs:\n console:\n provider: healthcheckbot.outputs.ConsoleOutput\n\nLogger Output\n~~~~~~~~~~~~~\n\nThis one is very similar to console output, but the serialized result will be passed to the logger.\n\nParameters\n\n.. list-table::\n :header-rows: 1\n\n * - Parameter\n - Description\n - Default Value\n - Required\n * - log_level\n - Log level to be used when outputting result\n - INFO\n - No\n * - loger_name\n - Name of the logger to use\n - OUT\n - No\n\n\nTriggers\n^^^^^^^^\n\nTriggers are responsible for initiation of worker execution. The most common use case is periodic run, but other scenarios are possible as well, e.g. execution after HTTP call.\n\nSimple Timer\n~~~~~~~~~~~~\n\nThis implementation of the trigger is pretty self-explanatory - all it does is periodic watchers execution with constant interval specified as a parameter.\n\n.. list-table::\n :header-rows: 1\n\n * - Parameter\n - Description\n - Default Value\n - Required\n * - interval\n - Time interval in seconds between iterations\n - 300\n - No\n * - start_immediately\n - If set to True, the first iteration will be triggered immediately after application starts; otherwise, in ``interval`` seconds\n - True\n - No\n\n\nExample\n\n.. code-block:: yaml\n\n triggers:\n each_1_minute:\n provider: healthcheckbot.triggers.SimpleTimer\n interval: 60\n each_5_minutes:\n provider: healthcheckbot.triggers.SimpleTimer\n interval: 300\n\nWatchers\n^^^^^^^^\n\nWatchers are modules that actually read the system state and could optionally run some assertions over a certain state. Their parameters mostly depend on implementation, but there is a couple of options common for all watchers.\n\n\n* ``triggers`` - the list of trigger names that will invoke the given watcher. It is important to list at least one trigger, otherwise, the watcher will never be invoked.\n* ``custom_assertions`` - the dictionary containing assertions to be applied as a part of state verification after regular module assertions. See section `Watcher Asserts <#watcher-asserts>`_ for details.\n\nWatcher Asserts\n^^^^^^^^^^^^^^^\n\nTBD\n\nCustomization\n-------------\n\nUser's ability to extend the behavior of any module is a key feature of Healthcheck Bot. In order to make it easier to load modules from the outside, user could extend classpath (folders to be scanned for classes) with a simple configuration option. Consider the following example:\n\n.. code-block:: yaml\n\n app: \n classpath:\n - /tmp\n outputs:\n console:\n provider: healthcheckbot.outputs.ConsoleOutput\n triggers:\n each_1_minute:\n provider: healthcheckbot.triggers.SimpleTimer\n interval: 60\n watchers:\n system_time:\n provider: logicify.watchers.SystemTimeWatcher\n triggers:\n - each_1_minute\n\nOur ``/tmp/logicify`` folder looks as follows:\n\n.. code-block::\n\n /tmp/logicify/\n \u251c\u2500\u2500 watchers.py\n \u2514\u2500\u2500 __init__.py\n\nFile ``watchers.py`` contains class ``SystemTimeWatcher`` that implements ``WatcherModule``\\ :\n\n.. code-block:: python\n\n class SystemTimeWatcher(WatcherModule):\n\n def __init__(self, application):\n super().__init__(application)\n self.error_when_midnight = False\n\n def obtain_state(self, trigger) -> object:\n current_time = datetime.now()\n return current_time\n\n def serialize_state(self, state: datetime) -> [dict, None]:\n return {\n \"time\": state.isoformat()\n }\n\n def do_assertions(self, state: datetime, reporter: ValidationReporter):\n if self.error_when_midnight:\n if state.time() == time(0, 0):\n reporter.error('its_midnight', 'Must be any time except of 00:00')\n\n PARAMS = (\n ParameterDef('error_when_midnight', validators=(validators.boolean,)),\n )\n\nThis implementation illustrates how you could create your own watchers. While this example shows only a watcher module, many concepts apply to the Triggers, Outputs and Asserts too.\n\n``PARAMS`` tuple gives you a way to configure arguments for your module. During application, bootstrap parameters from ``yaml`` will be sanitized, validated and assigned to the module instance according to definition configured with ``ParameterDef``. \n\nMethod ``obtain_state`` will be invoked by the trigger. You should implement your state gathering logic here. The result could be any object.\n\n``do_assertions`` will be invoked on state verification stage. ``state`` parameter here is what was returned from ``obtain_state``\\ , and ``reporter`` instance must be used to report assertion errors (if any).\n\nAnd finally, ``serialize_state`` will be called before passing the result to output. It should convert state object to simple types (dictionaries, lists, primitives).\n\nContribution\n------------\n\nThe initial configuration of dev environment:\n\n\n#. ``virtualenv -p python3 venv``\n#. ``source ./venv/bin/activate``\n#. ``pip install -r ./requirements.txt``\n\nCredits\n-------\n\nDmitry Berezovsky, Logicify (http://logicify.com/)\n\nLicense\n-------\n\nThis plug-in is licensed under GPLv3. This means you are free to use it even in commercial projects.\nAlso note there is no warranty for this free software. Please see the included `LICENSE `_ file for details.\n\n\n.. image:: https://app.fossa.io/api/projects/git%2Bgithub.com%2FLogicify%2Fhealthcheckbot.svg?type=large\n :target: https://app.fossa.io/projects/git%2Bgithub.com%2FLogicify%2Fhealthcheckbot?ref=badge_large\n :alt: FOSSA Status\n\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://githib.com/Logicify/healthcheckbot",
"keywords": "python healthchecks assertion validate health server healthcheck",
"license": "GPLv3",
"maintainer": "",
"maintainer_email": "",
"name": "healthcheckbot",
"package_url": "https://pypi.org/project/healthcheckbot/",
"platform": "",
"project_url": "https://pypi.org/project/healthcheckbot/",
"project_urls": {
"Homepage": "https://githib.com/Logicify/healthcheckbot"
},
"release_url": "https://pypi.org/project/healthcheckbot/0.1.11/",
"requires_dist": [
"PyYAML (==4.2b1)",
"typing (>=3.6)",
"requests (==2.21.0)",
"beautifulsoup4 (==4.4.0)",
"graypy (==0.3.2)",
"daemons (==1.3.0)"
],
"requires_python": "",
"summary": "Robust way to setup external health checks for your software",
"version": "0.1.11"
},
"last_serial": 5361400,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "c10741716248f707772decc2fe6d931b",
"sha256": "084a1f562a5227700be7abc8919a308330ddc23dacb548b0d5a15c074be64043"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c10741716248f707772decc2fe6d931b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 27700,
"upload_time": "2019-02-25T22:08:02",
"url": "https://files.pythonhosted.org/packages/78/0a/0c5b1c8b68c9bdd54223975625062256252522f5ff10effa12722ba5dca4/healthcheckbot-0.1.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "01144fdff9fa509a5c136cfad783fb10",
"sha256": "1e397d2fa9283b1bd62e9858c2da7c60117e0463b3444b1e05e4545e39f24a8c"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "01144fdff9fa509a5c136cfad783fb10",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16378,
"upload_time": "2019-02-25T22:08:05",
"url": "https://files.pythonhosted.org/packages/c1/94/063bf557689d7e37c612ffcec4805a7beb7ad2be7fa299d44c15a4b6f25d/healthcheckbot-0.1.0.tar.gz"
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "4286b0989c7a3917f4e18edd3f6b9bcd",
"sha256": "a9797e0143163e4b92d629e890422d83bc3cfe23085eab8f4d72a1585a5d127b"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4286b0989c7a3917f4e18edd3f6b9bcd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 27814,
"upload_time": "2019-02-25T22:24:05",
"url": "https://files.pythonhosted.org/packages/f6/79/585ed0bc00380f20f99980f293882ad55fd9a332ff16f25ab677a8a768eb/healthcheckbot-0.1.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "014c9255a7d637924db6c7b0fb7757f5",
"sha256": "3729e36cbf94934509d562a8812c6980efbf29f189dbdcb222997f1f70958257"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "014c9255a7d637924db6c7b0fb7757f5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16554,
"upload_time": "2019-02-25T22:24:07",
"url": "https://files.pythonhosted.org/packages/33/8a/3d248d6f51249fadb297c2168663d4569496451cf7f2568db66d106701c7/healthcheckbot-0.1.1.tar.gz"
}
],
"0.1.10": [
{
"comment_text": "",
"digests": {
"md5": "557ff3be243c4911b0fb09ad75ca88ad",
"sha256": "d37232f48c469dffaf07681dc8809d3619db20c0e578492042f3fa78ed799a32"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "557ff3be243c4911b0fb09ad75ca88ad",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 34260,
"upload_time": "2019-06-03T16:23:25",
"url": "https://files.pythonhosted.org/packages/dd/05/261d51ea2dc172ad27e53934fa8ae766de5f5216d3ad7ca2a5043eabb9d4/healthcheckbot-0.1.10-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "cfaec0b7cb18f25077d8b0e9bcfd32e7",
"sha256": "570aabdd559064e203372e85daf25c08e675921c82a9f3daefa95ba0d6354de8"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.10.tar.gz",
"has_sig": false,
"md5_digest": "cfaec0b7cb18f25077d8b0e9bcfd32e7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 20477,
"upload_time": "2019-06-03T16:23:26",
"url": "https://files.pythonhosted.org/packages/c5/fe/559da747825c287e31b6c75f70d2e8221405f751750f404328552dfa1cf7/healthcheckbot-0.1.10.tar.gz"
}
],
"0.1.11": [
{
"comment_text": "",
"digests": {
"md5": "3d19370b1e2e1918e4ee9be9b1d1d115",
"sha256": "6cac57eff1c2dfbe44d780c6e05c85864b867a8b58d48f62046eadf54e8f5b07"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.11-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3d19370b1e2e1918e4ee9be9b1d1d115",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 34264,
"upload_time": "2019-06-05T07:35:37",
"url": "https://files.pythonhosted.org/packages/1c/2e/90df5d00c34a2dda06021906a80a379c0d3229e7cc3d9fc841e07cf83ef1/healthcheckbot-0.1.11-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "0f2f74218d5876414a325645aa1b9e98",
"sha256": "fa96451b1a199c1b9c2c52e97ea2539d61bf085c13284925a05aba4de3b2f320"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.11.tar.gz",
"has_sig": false,
"md5_digest": "0f2f74218d5876414a325645aa1b9e98",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 20476,
"upload_time": "2019-06-05T07:35:39",
"url": "https://files.pythonhosted.org/packages/e4/d7/465ccb4204d529e8849d4ae5ebe5498c345a6687e442763120416d4f39ec/healthcheckbot-0.1.11.tar.gz"
}
],
"0.1.3": [
{
"comment_text": "",
"digests": {
"md5": "f60e3e18369c3c50413455a29e317b33",
"sha256": "11d1bcaaa56be5d43f98f8ed0cd69ed1cf55faaa5c587f81a19aad7c168016e2"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f60e3e18369c3c50413455a29e317b33",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 27814,
"upload_time": "2019-02-25T22:28:51",
"url": "https://files.pythonhosted.org/packages/ae/3c/fcc9492904879e53e1aed6fd5a28556e15d1169a8fd8d2ffed337755e9cf/healthcheckbot-0.1.3-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "8016b3a2adb0d0f2a0431fe2cc724f12",
"sha256": "0d79799daa0ea598c62f847a4ab9afee43b1202dbed54b881887b551a71de80d"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "8016b3a2adb0d0f2a0431fe2cc724f12",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16561,
"upload_time": "2019-02-25T22:28:52",
"url": "https://files.pythonhosted.org/packages/62/1e/2b259f4a0f1be22ebb95e83b99521a85cd527f4fcce82d12bc1f46c7dbe8/healthcheckbot-0.1.3.tar.gz"
}
],
"0.1.4": [
{
"comment_text": "",
"digests": {
"md5": "35f3afafa6c37efa314e639aefaf14ad",
"sha256": "14326ec8f9ce25b3b3f2e116fd2b6fda1e490cf23a9cbf49725abdc09608b6fd"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "35f3afafa6c37efa314e639aefaf14ad",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 27814,
"upload_time": "2019-02-25T23:04:01",
"url": "https://files.pythonhosted.org/packages/0a/f5/1d27eb48c8d99a52441ed9a7b71d59c63e6ccf2d29cb4c1f8421b3ab3228/healthcheckbot-0.1.4-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7b8796409f58b4f96a4611739e3fc8e3",
"sha256": "89e0b59c2901221fdf7c0bc3f4ebb8d89ef70505b6bc0ec62e7c12f74e6208a7"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "7b8796409f58b4f96a4611739e3fc8e3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16569,
"upload_time": "2019-02-25T23:04:03",
"url": "https://files.pythonhosted.org/packages/4d/2b/50eb93875d0e5ff663c334e68fc4f319985328bc6824c384c9ebb6c03574/healthcheckbot-0.1.4.tar.gz"
}
],
"0.1.5": [
{
"comment_text": "",
"digests": {
"md5": "dc2305e9bb21f1888b2ee2d9d6d488fb",
"sha256": "381e1b1915036db231e0751fb6a7e4128946e5e9eebd13c0db9168a75b9dd87d"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dc2305e9bb21f1888b2ee2d9d6d488fb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 31552,
"upload_time": "2019-05-28T13:25:44",
"url": "https://files.pythonhosted.org/packages/e9/70/9628b2e09b1b17b5a934fa78f23875259e0a9fd891657b4a1ea70e0bff52/healthcheckbot-0.1.5-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "307e608c12223aafce0142f48c82bd49",
"sha256": "0736bcbac4fe278c556ebec4093f2b181e10150fc4080232d6d3859ab70c0b18"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "307e608c12223aafce0142f48c82bd49",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19635,
"upload_time": "2019-05-28T13:25:45",
"url": "https://files.pythonhosted.org/packages/1b/ac/19b0ebc991d7e4e229bbba383038b4114cbf14761f865625f6ca422f6c4d/healthcheckbot-0.1.5.tar.gz"
}
],
"0.1.6": [
{
"comment_text": "",
"digests": {
"md5": "7d06b4e10990bd62d29783340971fdcc",
"sha256": "21d5b2c37296a0ed72c4844e7a7f7bd6088a876968fa8ee442b1baddfa79a497"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7d06b4e10990bd62d29783340971fdcc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 31666,
"upload_time": "2019-05-28T16:17:09",
"url": "https://files.pythonhosted.org/packages/12/42/8fe365d3f34d6a6705971303b201705a78b8784f52a1c6e518a90650d858/healthcheckbot-0.1.6-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f2f489629c0e4b0f75d339595e5eb4f5",
"sha256": "9b13513a65c0b233901d73638b5cce63514bddacd6e58e5cb1303824e2191c93"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.6.tar.gz",
"has_sig": false,
"md5_digest": "f2f489629c0e4b0f75d339595e5eb4f5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19716,
"upload_time": "2019-05-28T16:17:11",
"url": "https://files.pythonhosted.org/packages/6c/64/01b56f63078e01a994f31f29935f547287f85e3f44ef08e8ed09927490a5/healthcheckbot-0.1.6.tar.gz"
}
],
"0.1.7": [
{
"comment_text": "",
"digests": {
"md5": "1e5c1cdb0cd24bff2768da93137cf96e",
"sha256": "536bb863dd937b81a660fcedcc778f3b6df58981298c98528030c629d3ec21c1"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1e5c1cdb0cd24bff2768da93137cf96e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 31736,
"upload_time": "2019-05-29T15:19:11",
"url": "https://files.pythonhosted.org/packages/ab/6a/69e8c8267856ad886b98004eb9eea323c99673405a201c0a15fd224ba419/healthcheckbot-0.1.7-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6f5e95b6af271f17b58855a0af13248d",
"sha256": "4b7f7866028c5a56819d2d8fbd3ba87fc4633c737d99201db43b7aec010193f9"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "6f5e95b6af271f17b58855a0af13248d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19768,
"upload_time": "2019-05-29T15:19:13",
"url": "https://files.pythonhosted.org/packages/38/af/64f59292b3ac9b7ec7e72290df5b27ef15b6abb31389431451087afe24c3/healthcheckbot-0.1.7.tar.gz"
}
],
"0.1.8": [
{
"comment_text": "",
"digests": {
"md5": "f8c4947e48b8334683530a3244706c0a",
"sha256": "fbeaa60c8372683038c3e85e4d2b7d50a4f520c396b214b7f0f355e026ae9793"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f8c4947e48b8334683530a3244706c0a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 31743,
"upload_time": "2019-05-29T16:06:29",
"url": "https://files.pythonhosted.org/packages/8a/86/64d7356be054c13e84e13de22564f5b37b47b68a31e6f85324169bc590bb/healthcheckbot-0.1.8-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "ed1b6419e95d6c19f762692e371de5fd",
"sha256": "9e59e491109d2488395b516403e052f7ec7358981d059cd8f765f26059e58780"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.8.tar.gz",
"has_sig": false,
"md5_digest": "ed1b6419e95d6c19f762692e371de5fd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19772,
"upload_time": "2019-05-29T16:06:31",
"url": "https://files.pythonhosted.org/packages/73/55/da3ee56188e3a49239582b3179987ea296d36e8b3778f54581d0ca2a8774/healthcheckbot-0.1.8.tar.gz"
}
],
"0.1.9": [
{
"comment_text": "",
"digests": {
"md5": "fe66ff2c0a2f95dd50bae411aaddf9b2",
"sha256": "30a06a18f2586f081a3293320972ff76f1c04ac6d7cf9df9ee2f465b833b3ffd"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fe66ff2c0a2f95dd50bae411aaddf9b2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 31743,
"upload_time": "2019-06-03T15:47:09",
"url": "https://files.pythonhosted.org/packages/fa/dc/5870a7ef84605cd614b99a83d03020a2b5c602d9fb7ca66ff78061482e7b/healthcheckbot-0.1.9-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6f40acb20d36e3ae24773d24239cac83",
"sha256": "6959b784b40f29e44bf6acf38a39c19702f64be2ebb99b81f25f07bcacce10ed"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.9.tar.gz",
"has_sig": false,
"md5_digest": "6f40acb20d36e3ae24773d24239cac83",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19780,
"upload_time": "2019-06-03T15:47:10",
"url": "https://files.pythonhosted.org/packages/ac/66/b3082a67751359fac59690847a7c197c1c5303555e953ff0c988268f4133/healthcheckbot-0.1.9.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "3d19370b1e2e1918e4ee9be9b1d1d115",
"sha256": "6cac57eff1c2dfbe44d780c6e05c85864b867a8b58d48f62046eadf54e8f5b07"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.11-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3d19370b1e2e1918e4ee9be9b1d1d115",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 34264,
"upload_time": "2019-06-05T07:35:37",
"url": "https://files.pythonhosted.org/packages/1c/2e/90df5d00c34a2dda06021906a80a379c0d3229e7cc3d9fc841e07cf83ef1/healthcheckbot-0.1.11-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "0f2f74218d5876414a325645aa1b9e98",
"sha256": "fa96451b1a199c1b9c2c52e97ea2539d61bf085c13284925a05aba4de3b2f320"
},
"downloads": -1,
"filename": "healthcheckbot-0.1.11.tar.gz",
"has_sig": false,
"md5_digest": "0f2f74218d5876414a325645aa1b9e98",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 20476,
"upload_time": "2019-06-05T07:35:39",
"url": "https://files.pythonhosted.org/packages/e4/d7/465ccb4204d529e8849d4ae5ebe5498c345a6687e442763120416d4f39ec/healthcheckbot-0.1.11.tar.gz"
}
]
}