{ "info": { "author": "alexandre menezes", "author_email": "alexandre.fmenezes@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: AsyncIO", "Framework :: Flask", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "[![Build Status](https://travis-ci.org/amenezes/discovery-client.svg?branch=master)](https://travis-ci.org/amenezes/discovery-client)\n[![Maintainability](https://api.codeclimate.com/v1/badges/fc7916aab464c8b7d742/maintainability)](https://codeclimate.com/github/amenezes/discovery-client/maintainability)\n[![codecov](https://codecov.io/gh/amenezes/discovery-client/branch/master/graph/badge.svg)](https://codecov.io/gh/amenezes/discovery-client)\n[![PyPI version](https://badge.fury.io/py/discovery-client.svg)](https://badge.fury.io/py/discovery-client)\n\n# discovery-client\n\ndiscovery-client package sync/async for [consul](https://consul.io).\n\n## Installing\n\nInstall and update using pip:\n\n````bash\npip install -U discovery-client\n````\n\n## Dependencies\n\n- [python-consul](https://python-consul.readthedocs.io/en/latest)\n\n### Async client only\n - [asyncio](https://docs.python.org/3.6/library/asyncio.html)\n - [aiohttp](https://aiohttp.readthedocs.io/en/stable)\n\n## Usage Example\n\n### using standard client\n\n````python\nfrom discovery.client import Consul\n\n\ndc = Consul('localhost', 8500)\ndc.find_service('consul')\n````\n\nIntegration with Flask + threading.\n\n````python\nimport json\nimport threading\n\nfrom discovery.client import Consul\n\nfrom flask import Flask\n\n\napp = Flask(__name__)\ndc = Consul('discovery', 8500)\ndc.register('standard-client', 5000)\n\n\n@app.route('/manage/health')\ndef health():\n return json.dumps({'status': 'UP'})\n\n\n@app.route('/manage/info')\ndef info():\n return json.dumps({'app': 'standard-client'})\n\n\n@app.before_first_request\ndef enable_service_registry():\n def probe_discovery_connection():\n dc.consul_is_healthy()\n thread = threading.Thread(target=probe_discovery_connection)\n thread.start()\n````\n\n### using asyncio\n\nclient using asyncio\n\n````python\nimport asyncio\n\nfrom discovery import aioclient\n\n\nloop = asyncio.get_event_loop()\ndc = aioclient.Consul('localhost', 8500, loop)\n\nsearch_one_task = loop.create_task(dc.find_service('consul'))\nsearch_all_task = loop.create_task(dc.find_services('consul'))\n\nloop.run_until_complete(search_one_task)\nloop.run_until_complete(search_all_task)\n````\n\n### using aiohttp\n\nserver using aiohttp + asyncio\n\n````python\nimport asyncio\n\nfrom aiohttp import web\n\nfrom discovery.aioclient import Consul\n\n\nasync def service_discovery(app):\n app.loop.create_task(dc.register('aio-client', 5000))\n asyncio.sleep(15)\n app.loop.create_task(dc.consul_is_healthy())\n\n\nasync def handle_info(request):\n return web.json_response({'app': 'aio-client'})\n\n\nasync def handle_status(request):\n return web.json_response({'status': 'UP'})\n\n\napp = web.Application()\ndc = Consul('discovery', 8500, app.loop)\n\napp.on_startup.append(service_discovery)\napp.add_routes([web.get('/manage/health', handle_status),\n web.get('/manage/info', handle_info)])\nweb.run_app(app, host='0.0.0.0', port=5000)\n````\n\n## Links\n\n- License: [Apache License](https://choosealicense.com/licenses/apache-2.0/)\n- Code: https://github.com/amenezes/discovery-client\n- Issue tracker: https://github.com/amenezes/discovery-client/issues\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/amenezes/discovery-client", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "discovery-client", "package_url": "https://pypi.org/project/discovery-client/", "platform": "", "project_url": "https://pypi.org/project/discovery-client/", "project_urls": { "Code": "https://github.com/amenezes/discovery-client", "Documentation": "https://github.com/amenezes/discovery-client", "Homepage": "https://github.com/amenezes/discovery-client", "Issue tracker": "https://github.com/amenezes/discovery-client/issues" }, "release_url": "https://pypi.org/project/discovery-client/0.2.5/", "requires_dist": [ "python-consul ; extra == 'consul'" ], "requires_python": "", "summary": "discovery service client", "version": "0.2.5" }, "last_serial": 5466406, "releases": { "0.1.2": [ { "comment_text": "", "digests": { "md5": "0a795d7b04128bd94b337f863b059f0f", "sha256": "97c2aabd3e563629c35a8c24adc8cf4d2efaef43e068eb9461e572e3fda30ac9" }, "downloads": -1, "filename": "discovery_client-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0a795d7b04128bd94b337f863b059f0f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9642, "upload_time": "2019-02-14T03:24:44", "url": "https://files.pythonhosted.org/packages/f6/21/2231dca9e0236608a1464d18531ce81f77ae71c8ed3d6c3514bc8103a5f9/discovery_client-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c6284167f6072d697e5e12829332f36e", "sha256": "42cebbce8a7346c751476daeceb12219dce9ec8f3cd7bc61353e7a31e1a41907" }, "downloads": -1, "filename": "discovery-client-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c6284167f6072d697e5e12829332f36e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4016, "upload_time": "2019-02-14T03:24:48", "url": "https://files.pythonhosted.org/packages/86/3d/80d40ebb2b785595dce17384cecc41f6be0a21d12942941ad3eea790e964/discovery-client-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "ea9c571b3bd837965876aef09b1c21c4", "sha256": "cb8055b0a89ed93d9011d3b1ab47e52737b8df8642b87b1b867491664bee496a" }, "downloads": -1, "filename": "discovery_client-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ea9c571b3bd837965876aef09b1c21c4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9662, "upload_time": "2019-02-14T03:24:47", "url": "https://files.pythonhosted.org/packages/47/f5/f2b3842182bd2f91295df935e8b741d9f454bc0ba0874116b06046517b25/discovery_client-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad8173ae20e112ae505e9cd8032b5eac", "sha256": "864dde5f4eb593d15a3075d5c91d87a9f8fa9893e3ef1314c534d77e67d8d0a7" }, "downloads": -1, "filename": "discovery-client-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ad8173ae20e112ae505e9cd8032b5eac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4039, "upload_time": "2019-02-14T03:24:49", "url": "https://files.pythonhosted.org/packages/68/45/216bcc66bb8c03cad43b954c25745a895f8d19c6620d4c5cbf47f8634a7f/discovery-client-0.1.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0acff6244dcbae291c0400381bb8d355", "sha256": "0c707eca3e4bdae95b60ef3eef7487a9c2ac56bdc8d9533e681515c2b2ea3b9a" }, "downloads": -1, "filename": "discovery_client-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0acff6244dcbae291c0400381bb8d355", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10922, "upload_time": "2019-03-01T12:17:16", "url": "https://files.pythonhosted.org/packages/8d/39/19bfe3b232fad7e6586e4ad61c3f7c3bdd3443c35e9638131171acd4dd20/discovery_client-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5dc78a96195866f4651a652f62bb833", "sha256": "1898224c750e3301766c59d083f7ca0a8694af32e1906279c6f5e1f3f2716661" }, "downloads": -1, "filename": "discovery-client-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f5dc78a96195866f4651a652f62bb833", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4837, "upload_time": "2019-03-01T12:17:17", "url": "https://files.pythonhosted.org/packages/6b/28/0bda4127a54a426248d7ea10c9373bd7ce0ead912073537d8a90ea3055d3/discovery-client-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "3d9c02874f01b6f4ff717e24c81d6dbd", "sha256": "3903b35a6f14e71f2e96987b99afd09bc6f8253190eb4ef1d666581b1b8faffc" }, "downloads": -1, "filename": "discovery_client-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3d9c02874f01b6f4ff717e24c81d6dbd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11060, "upload_time": "2019-03-01T13:52:23", "url": "https://files.pythonhosted.org/packages/78/c7/6ee03aeb5c4aa8cfd97b045576474b4aaaabb4c5f81c22bd7b64fd30dcbc/discovery_client-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bdc2dd3789eeeccbaf42746e1110b4ca", "sha256": "cc0f7c703c28dd16fe566519c35e629464ad5abf4463a70c30753e949e0e03c9" }, "downloads": -1, "filename": "discovery-client-0.2.1.tar.gz", "has_sig": false, "md5_digest": "bdc2dd3789eeeccbaf42746e1110b4ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4972, "upload_time": "2019-03-01T13:52:25", "url": "https://files.pythonhosted.org/packages/c6/0d/7453de6b0333f0a869b2e83acb676ecfacd675221fe40e7770e756238d36/discovery-client-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "047d58cf873265e666e02cfec9caf864", "sha256": "8c95119a826541f407035914370c150bfcd9cc589232348acc163ea185ac360d" }, "downloads": -1, "filename": "discovery_client-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "047d58cf873265e666e02cfec9caf864", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11154, "upload_time": "2019-03-30T23:51:03", "url": "https://files.pythonhosted.org/packages/d5/01/e81ed837425c41b82ec17ef8272a9ad7c9edd866985063e5506161b30234/discovery_client-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ff021edf0701095fbd2ad7157512c46", "sha256": "bb9ef06022a929db19776ae37de24f2b7e3d8577c2c07dbeed7c6e36c98785d1" }, "downloads": -1, "filename": "discovery-client-0.2.2.tar.gz", "has_sig": false, "md5_digest": "4ff021edf0701095fbd2ad7157512c46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5077, "upload_time": "2019-03-30T23:51:04", "url": "https://files.pythonhosted.org/packages/3a/e8/1ca276a5e8bf6400a68582d83133a8a983bb6b2f234061bb59a5d1c2b23c/discovery-client-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "4349a1f38eef8818de121598aa141fef", "sha256": "603c1dab6715f71f639863da04dd1ac6830330baceaf7ff54070638cf6d1a43d" }, "downloads": -1, "filename": "discovery_client-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "4349a1f38eef8818de121598aa141fef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11152, "upload_time": "2019-04-11T18:08:37", "url": "https://files.pythonhosted.org/packages/25/ab/21e5dcb1413d505b934668128c4d4e0734fb86d181763dfa6adbb8ccec91/discovery_client-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d0365be692a8af4921b5c984ae1945d", "sha256": "e2ed7da50269fa085c8894d282835fb574024efe7ee4d0e0a53bf9ead62cfac6" }, "downloads": -1, "filename": "discovery-client-0.2.3.tar.gz", "has_sig": false, "md5_digest": "4d0365be692a8af4921b5c984ae1945d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5101, "upload_time": "2019-04-11T18:08:38", "url": "https://files.pythonhosted.org/packages/91/0f/34424295c92b3a5b6c00108a29ca664c25a013f5d9c9d784e2db2f3c5cc1/discovery-client-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "8218d1701b96d9b320f1118736de82df", "sha256": "aca182dfdd2cade54de3311fb4de70859c64d731284f5f763c90a88a015e3032" }, "downloads": -1, "filename": "discovery_client-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "8218d1701b96d9b320f1118736de82df", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11599, "upload_time": "2019-04-16T18:00:33", "url": "https://files.pythonhosted.org/packages/38/da/836d4661c186a95a12f1cedf2a7da27de446fa17455258bc3c2025a728b0/discovery_client-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c70e20bb897c67b1b488491a868d72e", "sha256": "cf2ac406920a79ed91da53e437bd1e1a5d0de8db6b9bd9f31c2fd055f11cffa5" }, "downloads": -1, "filename": "discovery-client-0.2.4.tar.gz", "has_sig": false, "md5_digest": "5c70e20bb897c67b1b488491a868d72e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5250, "upload_time": "2019-04-16T18:00:35", "url": "https://files.pythonhosted.org/packages/c4/40/9f9d1299e92ac0be0eb8bb588d6677ac8283222dbf21f83cf5613ee8fea3/discovery-client-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "fbbf8a11a9203a488189273efe8b07bc", "sha256": "3d6601b703cf2dda1fc288557926b4f2f886a04c2ca1c8cbd90e445c9b56dcfa" }, "downloads": -1, "filename": "discovery_client-0.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "fbbf8a11a9203a488189273efe8b07bc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11695, "upload_time": "2019-06-29T21:42:23", "url": "https://files.pythonhosted.org/packages/0f/eb/40c741c2ba6130957c847cf9816296cd3d25c16d9a1bd05d2cb5fd3e7869/discovery_client-0.2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6754b206613df5ed0158f9d9d59c0b13", "sha256": "ac9234c7f9e4f5666645bab9ce0d492df372cb71c0d78bfcdd5ca48d9d955bc6" }, "downloads": -1, "filename": "discovery-client-0.2.5.tar.gz", "has_sig": false, "md5_digest": "6754b206613df5ed0158f9d9d59c0b13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5283, "upload_time": "2019-06-29T21:42:24", "url": "https://files.pythonhosted.org/packages/42/87/5ff9678e6db68a6845d00d5b4bd93bc9562b3771062aabb813ab1c88a01b/discovery-client-0.2.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fbbf8a11a9203a488189273efe8b07bc", "sha256": "3d6601b703cf2dda1fc288557926b4f2f886a04c2ca1c8cbd90e445c9b56dcfa" }, "downloads": -1, "filename": "discovery_client-0.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "fbbf8a11a9203a488189273efe8b07bc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11695, "upload_time": "2019-06-29T21:42:23", "url": "https://files.pythonhosted.org/packages/0f/eb/40c741c2ba6130957c847cf9816296cd3d25c16d9a1bd05d2cb5fd3e7869/discovery_client-0.2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6754b206613df5ed0158f9d9d59c0b13", "sha256": "ac9234c7f9e4f5666645bab9ce0d492df372cb71c0d78bfcdd5ca48d9d955bc6" }, "downloads": -1, "filename": "discovery-client-0.2.5.tar.gz", "has_sig": false, "md5_digest": "6754b206613df5ed0158f9d9d59c0b13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5283, "upload_time": "2019-06-29T21:42:24", "url": "https://files.pythonhosted.org/packages/42/87/5ff9678e6db68a6845d00d5b4bd93bc9562b3771062aabb813ab1c88a01b/discovery-client-0.2.5.tar.gz" } ] }