{ "info": { "author": "Vladimir Magamedov", "author_email": "vladimir@magamedov.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Internet :: WWW/HTTP :: HTTP Servers", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Pure-Python gRPC implementation for asyncio\n===========================================\n\n|project|_ |documentation|_ |version|_ |tag|_ |license|_\n\nThis project is based on `hyper-h2`_ and **requires Python >= 3.6**.\n\n.. contents::\n :local:\n\nExample\n~~~~~~~\n\nSee `examples`_ directory in the project's repository for all available\nexamples.\n\nClient\n------\n\n.. code-block:: python3\n\n import asyncio\n\n from grpclib.client import Channel\n\n # generated by protoc\n from .helloworld_pb2 import HelloRequest, HelloReply\n from .helloworld_grpc import GreeterStub\n\n\n async def main():\n channel = Channel('127.0.0.1', 50051)\n greeter = GreeterStub(channel)\n\n reply: HelloReply = await greeter.SayHello(HelloRequest(name='Dr. Strange'))\n print(reply.message)\n\n channel.close()\n\n\n if __name__ == '__main__':\n asyncio.run(main())\n\nServer\n------\n\n.. code-block:: python3\n\n import asyncio\n\n from grpclib.utils import graceful_exit\n from grpclib.server import Server\n\n # generated by protoc\n from .helloworld_pb2 import HelloRequest, HelloReply\n from .helloworld_grpc import GreeterBase\n\n\n class Greeter(GreeterBase):\n\n async def SayHello(self, stream):\n request: HelloRequest = await stream.recv_message()\n message = f'Hello, {request.name}!'\n await stream.send_message(HelloReply(message=message))\n\n\n async def main(*, host='127.0.0.1', port=50051):\n server = Server([Greeter()])\n with graceful_exit([server]):\n await server.start(host, port)\n print(f'Serving on {host}:{port}')\n await server.wait_closed()\n\n\n if __name__ == '__main__':\n asyncio.run(main())\n\nInstallation\n~~~~~~~~~~~~\n\n.. code-block:: shell\n\n $ pip3 install grpclib protobuf\n\nBug fixes and new features are frequently published via release candidates:\n\n.. code-block:: shell\n\n $ pip3 install --upgrade --pre grpclib\n\nFor the code generation you will also need a ``protoc`` compiler, which can be\ninstalled with ``protobuf`` system package:\n\n.. code-block:: shell\n\n $ brew install protobuf # example for macOS users\n $ protoc --version\n libprotoc ...\n\n\n**Or** you can use ``protoc`` compiler from the ``grpcio-tools`` Python package:\n\n.. code-block:: shell\n\n $ pip3 install grpcio-tools\n $ python3 -m grpc_tools.protoc --version\n libprotoc ...\n\n**Note:** ``grpcio`` and ``grpcio-tools`` packages are **not required in\nruntime**, ``grpcio-tools`` package will be used only during code generation.\n\n``protoc`` plugin\n~~~~~~~~~~~~~~~~~\n\nIn order to use this library you will have to generate special stub files using\nplugin provided, which can be used like this:\n\n.. code-block:: shell\n\n $ python3 -m grpc_tools.protoc -I. --python_out=. --python_grpc_out=. helloworld/helloworld.proto\n\nThis command will generate ``helloworld_pb2.py`` and ``helloworld_grpc.py``\nfiles.\n\nPlugin, which implements ``--python_grpc_out`` option is available for\n``protoc`` compiler as ``protoc-gen-python_grpc`` executable, which will be\ninstalled by ``pip/setuptools`` into your ``$PATH`` during installation of the\n``grpclib`` library.\n\nContributing\n~~~~~~~~~~~~\n\nUse Tox_ in order to test and lint your changes.\n\n.. _gRPC: http://www.grpc.io\n.. _hyper-h2: https://github.com/python-hyper/hyper-h2\n.. _grpcio: https://pypi.org/project/grpcio/\n.. _Tox: https://tox.readthedocs.io/\n.. _examples: https://github.com/vmagamedov/grpclib/tree/master/examples\n.. |version| image:: https://img.shields.io/pypi/v/grpclib.svg?label=stable&color=green\n.. _version: https://pypi.org/project/grpclib/\n.. |license| image:: https://img.shields.io/pypi/l/grpclib.svg\n.. _license: https://github.com/vmagamedov/grpclib/blob/master/LICENSE.txt\n.. |tag| image:: https://img.shields.io/github/tag/vmagamedov/grpclib.svg?label=latest\n.. _tag: https://pypi.org/project/grpclib/#history\n.. |project| image:: https://img.shields.io/badge/vmagamedov%2Fgrpclib-blueviolet.svg?logo=github\n.. _project: https://github.com/vmagamedov/grpclib\n.. |documentation| image:: https://img.shields.io/badge/docs-grpclib.rtfd.io-blue.svg\n.. _documentation: https://grpclib.readthedocs.io/en/latest/", "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/vmagamedov/grpclib", "keywords": "", "license": "BSD-3-Clause", "maintainer": "", "maintainer_email": "", "name": "grpclib", "package_url": "https://pypi.org/project/grpclib/", "platform": "", "project_url": "https://pypi.org/project/grpclib/", "project_urls": { "Homepage": "https://github.com/vmagamedov/grpclib" }, "release_url": "https://pypi.org/project/grpclib/0.3.0/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Pure-Python gRPC implementation for asyncio", "version": "0.3.0" }, "last_serial": 5849050, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "588248ea18ad9902bc75b8ad76227235", "sha256": "158b5f77037b11bae1fd7775183b96a7f76581b1ba8e3716770abfacfaf79e68" }, "downloads": -1, "filename": "grpclib-0.1.0.tar.gz", "has_sig": false, "md5_digest": "588248ea18ad9902bc75b8ad76227235", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13367, "upload_time": "2018-03-30T08:27:43", "url": "https://files.pythonhosted.org/packages/ae/ba/0a101973fa9d453ee8cc576f8d19cd826a076492d1a2184e22664c9c5e36/grpclib-0.1.0.tar.gz" } ], "0.1.0rc1": [ { "comment_text": "", "digests": { "md5": "0079ba35105278a03717e12e5133fde2", "sha256": "47a83c3c892e9cd381c5f6275c44b52d448e4c29afd6634318a91652e5182df4" }, "downloads": -1, "filename": "grpclib-0.1.0rc1.tar.gz", "has_sig": false, "md5_digest": "0079ba35105278a03717e12e5133fde2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 12924, "upload_time": "2017-11-30T12:03:45", "url": "https://files.pythonhosted.org/packages/fd/fb/405fa389af55c4b914365f41c89f91aa0f6e107aeebce0b9d2ac6389534b/grpclib-0.1.0rc1.tar.gz" } ], "0.1.0rc2": [ { "comment_text": "", "digests": { "md5": "6f9ae3d9777fd05258961d2befa79992", "sha256": "b92d55012ceed1773ec79ac638fae58443dc438365bc7880e73e6a1b866edb15" }, "downloads": -1, "filename": "grpclib-0.1.0rc2.tar.gz", "has_sig": false, "md5_digest": "6f9ae3d9777fd05258961d2befa79992", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13357, "upload_time": "2017-12-13T15:05:53", "url": "https://files.pythonhosted.org/packages/82/d7/991ce4ea6d88a6c007a0e061fcdb0d230b76c5f4fceb6310d63ef7e1bb1a/grpclib-0.1.0rc2.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "318c4340e0a16a60768da738ae864150", "sha256": "c5ab519b14bdc54dbec5de6beeb08be83728739783f5a20db85b7319a3aa2447" }, "downloads": -1, "filename": "grpclib-0.1.1.tar.gz", "has_sig": false, "md5_digest": "318c4340e0a16a60768da738ae864150", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19130, "upload_time": "2018-07-03T16:10:02", "url": "https://files.pythonhosted.org/packages/66/99/140ac4e09c516381356756781775243fd89754d24ba9a8622a88b85d4591/grpclib-0.1.1.tar.gz" } ], "0.1.1rc1": [ { "comment_text": "", "digests": { "md5": "d110cde2e3f74a081d98dba0afd86c0f", "sha256": "68405e1b12e5715ed93f7cbc6ac705d7d6a9c9c6d4797379e6650ca8d0131cf0" }, "downloads": -1, "filename": "grpclib-0.1.1rc1.tar.gz", "has_sig": false, "md5_digest": "d110cde2e3f74a081d98dba0afd86c0f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 18641, "upload_time": "2018-05-29T06:06:12", "url": "https://files.pythonhosted.org/packages/f4/d6/bca9f8280600989fe9579cc5f48d0a48807641a8d48d6987ea5dda05776d/grpclib-0.1.1rc1.tar.gz" } ], "0.1.1rc2": [ { "comment_text": "", "digests": { "md5": "58e3718951bdf0f24554aaf7c1ec0355", "sha256": "909ed78e59ec35f91cf89859c12cf7e4ed51cb57832e5c4d670739b9756a9a5d" }, "downloads": -1, "filename": "grpclib-0.1.1rc2.tar.gz", "has_sig": false, "md5_digest": "58e3718951bdf0f24554aaf7c1ec0355", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19088, "upload_time": "2018-06-08T18:01:21", "url": "https://files.pythonhosted.org/packages/c7/28/31de3da64ccd80d8e729948745851418bbd51201c95ab060c125fe4ec982/grpclib-0.1.1rc2.tar.gz" } ], "0.1.1rc3": [ { "comment_text": "", "digests": { "md5": "d5285265bdbdae30a5339c5ddbe7f904", "sha256": "18db84362fdd850272c353aca303b16aabbda20d42d009efd25c91ede7fdf827" }, "downloads": -1, "filename": "grpclib-0.1.1rc3.tar.gz", "has_sig": false, "md5_digest": "d5285265bdbdae30a5339c5ddbe7f904", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19095, "upload_time": "2018-06-23T13:36:08", "url": "https://files.pythonhosted.org/packages/97/10/a005478ea835e256f14b1b501deefbee009b57acd671f70e57ddaf3a496e/grpclib-0.1.1rc3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "04af1e9e95ca94aa5fa5542ed4358ad0", "sha256": "406eb8baaa8467d7f5772ae2dacfe15adbfa8ed0a06b643534a7d0bf3ed8302c" }, "downloads": -1, "filename": "grpclib-0.2.0.tar.gz", "has_sig": false, "md5_digest": "04af1e9e95ca94aa5fa5542ed4358ad0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 31006, "upload_time": "2018-10-16T16:43:03", "url": "https://files.pythonhosted.org/packages/66/68/cf77f74aa08b8577ce5ebedcd31593825481cb03b6e8e602443505ca27db/grpclib-0.2.0.tar.gz" } ], "0.2.0rc1": [ { "comment_text": "", "digests": { "md5": "3d2f0d18f5d9d645c2d0ff747fbc678e", "sha256": "7b51262afed6e714ca1f61d67b442c27968a05716b7706932979e6c880a71812" }, "downloads": -1, "filename": "grpclib-0.2.0rc1.tar.gz", "has_sig": false, "md5_digest": "3d2f0d18f5d9d645c2d0ff747fbc678e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 30366, "upload_time": "2018-08-27T17:16:24", "url": "https://files.pythonhosted.org/packages/c8/fa/2c8bc4102563a270b7f0da11c905081d4e3ea86c21480604990833dd9d36/grpclib-0.2.0rc1.tar.gz" } ], "0.2.0rc2": [ { "comment_text": "", "digests": { "md5": "c9916270a53681fbe08918077c9e505a", "sha256": "a58bb1cb092ee454c9adc823d0ce27d99da14bdbdf30ee35728f508b6aff515f" }, "downloads": -1, "filename": "grpclib-0.2.0rc2.tar.gz", "has_sig": false, "md5_digest": "c9916270a53681fbe08918077c9e505a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 30842, "upload_time": "2018-10-02T13:37:01", "url": "https://files.pythonhosted.org/packages/8d/8d/24811619383837d70f04bb97648ddc18c51f63d956cba9e1fe2b1f7f406d/grpclib-0.2.0rc2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "ef95cca6baadca5b39c4164aadfb76b9", "sha256": "7ca332f4aee4e4db01c0a65a08ef3baf3eaf2e24b05ed1b8b2d44b5c391fd318" }, "downloads": -1, "filename": "grpclib-0.2.1.tar.gz", "has_sig": false, "md5_digest": "ef95cca6baadca5b39c4164aadfb76b9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 31591, "upload_time": "2018-12-15T07:23:10", "url": "https://files.pythonhosted.org/packages/0b/9d/90b4d82e2d4fe0833f0930a1afbabb94be3052bdb635eb55e42a0eaee43e/grpclib-0.2.1.tar.gz" } ], "0.2.1rc1": [ { "comment_text": "", "digests": { "md5": "2d5540bc3a2442c8733955db1f424c76", "sha256": "79731da97a8eeb4fd57633c0e611000baa4df820f45cdedc9bc3df22d7e7ea08" }, "downloads": -1, "filename": "grpclib-0.2.1rc1.tar.gz", "has_sig": false, "md5_digest": "2d5540bc3a2442c8733955db1f424c76", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 31379, "upload_time": "2018-10-30T12:07:26", "url": "https://files.pythonhosted.org/packages/e5/13/dbca86137e369b04ea8c807f53620a58e25e53d704d3921814eebe1713bb/grpclib-0.2.1rc1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "99ab5e52c02353360602350fbd08fc21", "sha256": "1fe72bff164db00a4281e772fc820b25c3f3cccdecfc49ebf5538a0c2a4458b5" }, "downloads": -1, "filename": "grpclib-0.2.2.tar.gz", "has_sig": false, "md5_digest": "99ab5e52c02353360602350fbd08fc21", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 32755, "upload_time": "2019-03-01T10:18:21", "url": "https://files.pythonhosted.org/packages/0d/0f/1efa36b8125a6a0ad31550e33ee37703aa3ea77ded7911b161812002c25c/grpclib-0.2.2.tar.gz" } ], "0.2.2rc1": [ { "comment_text": "", "digests": { "md5": "9f56c77bf06ab00a14304df88f488250", "sha256": "12a57954afaa0dd761374c92f76268df287a631e3521355539fc882ea528ee27" }, "downloads": -1, "filename": "grpclib-0.2.2rc1.tar.gz", "has_sig": false, "md5_digest": "9f56c77bf06ab00a14304df88f488250", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 32610, "upload_time": "2019-01-25T16:13:21", "url": "https://files.pythonhosted.org/packages/59/8b/cfa4d0ef1ae11b418cab45cfc13f43f570facaad9beb9bbeb3149b980103/grpclib-0.2.2rc1.tar.gz" } ], "0.2.2rc2": [ { "comment_text": "", "digests": { "md5": "84b1543a3a264c6633ef687451a97e1e", "sha256": "c7ad7c9b0b961c492d10443c984f99b349218fa5964b66c2ae48ee6cd8dfe42e" }, "downloads": -1, "filename": "grpclib-0.2.2rc2.tar.gz", "has_sig": false, "md5_digest": "84b1543a3a264c6633ef687451a97e1e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 32520, "upload_time": "2019-01-28T11:00:56", "url": "https://files.pythonhosted.org/packages/cb/66/bfe1d7fadeacf0b714b4274e5d35249d7fd1a8e4ad06b76453a0c470ff94/grpclib-0.2.2rc2.tar.gz" } ], "0.2.2rc3": [ { "comment_text": "", "digests": { "md5": "3ca589c65f8b3f2bae3053040d945e87", "sha256": "eb45b221867ae2f3415031d657e2e967182ad428d2a89d1d7259a85f5f3f22ee" }, "downloads": -1, "filename": "grpclib-0.2.2rc3.tar.gz", "has_sig": false, "md5_digest": "3ca589c65f8b3f2bae3053040d945e87", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 32578, "upload_time": "2019-02-11T10:21:03", "url": "https://files.pythonhosted.org/packages/9f/69/e3909490d52022bcd92ea0f83b80096a890b6b27bd1a99b84c0832b688a5/grpclib-0.2.2rc3.tar.gz" } ], "0.2.2rc4": [ { "comment_text": "", "digests": { "md5": "919a0e66624fd8ef6cb716ef6587ef6b", "sha256": "0af67cbdd642a83cedfb0979f8f215828249a40e752169974641c42924267c64" }, "downloads": -1, "filename": "grpclib-0.2.2rc4.tar.gz", "has_sig": false, "md5_digest": "919a0e66624fd8ef6cb716ef6587ef6b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 32774, "upload_time": "2019-02-14T17:04:26", "url": "https://files.pythonhosted.org/packages/2f/78/f6080e9a2923bf55d542614c3bc58c60eac5550dce6987c6ca46926726dc/grpclib-0.2.2rc4.tar.gz" } ], "0.2.2rc5": [ { "comment_text": "", "digests": { "md5": "3c759a4e7b9ada1d3ec5cf2be15fb5d4", "sha256": "36c7c68b090d3d92693e319997266b8c119a42f4f3c631dc54ae8b136a0567ea" }, "downloads": -1, "filename": "grpclib-0.2.2rc5.tar.gz", "has_sig": false, "md5_digest": "3c759a4e7b9ada1d3ec5cf2be15fb5d4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 32767, "upload_time": "2019-02-25T16:07:50", "url": "https://files.pythonhosted.org/packages/fb/52/41af6987f63d5744db046be4ed784523fe5078d5e2f6973b41b550c75b85/grpclib-0.2.2rc5.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "8fc1345a6523c92251e65e210e5ef5c0", "sha256": "454a86153075eb424b4b87d1a91e56760ac5e718cb70d87021b962c92d5ce3c6" }, "downloads": -1, "filename": "grpclib-0.2.3.tar.gz", "has_sig": false, "md5_digest": "8fc1345a6523c92251e65e210e5ef5c0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 34987, "upload_time": "2019-03-31T14:58:51", "url": "https://files.pythonhosted.org/packages/af/43/48a1790944aa1f754ba0ab8041de4e5c7b7fcf983fca23b62ec1bac1bd08/grpclib-0.2.3.tar.gz" } ], "0.2.3rc1": [ { "comment_text": "", "digests": { "md5": "c26da7b365fac54a6ef958e9cead3b2c", "sha256": "ea8cf20486673b93d5a3e8c4ad6b5d8b7caa2be804202714b6a7f9d8910b8072" }, "downloads": -1, "filename": "grpclib-0.2.3rc1.tar.gz", "has_sig": false, "md5_digest": "c26da7b365fac54a6ef958e9cead3b2c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 33411, "upload_time": "2019-03-12T14:26:17", "url": "https://files.pythonhosted.org/packages/11/3f/7f6a785e0e85353f365a1c84d82ca3e6f46cad688bf49961d893f07e98e7/grpclib-0.2.3rc1.tar.gz" } ], "0.2.3rc2": [ { "comment_text": "", "digests": { "md5": "dd062f02ed775fc56342604192112313", "sha256": "a99cc7ff39108557ebff56c363995d13b2d66a5f121638af08ed2cdb4e273c4b" }, "downloads": -1, "filename": "grpclib-0.2.3rc2.tar.gz", "has_sig": false, "md5_digest": "dd062f02ed775fc56342604192112313", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 34912, "upload_time": "2019-03-27T14:34:21", "url": "https://files.pythonhosted.org/packages/71/d3/2a29c09537afabeb0d16f2696c18fc45e6fd50ffe863e07c174e85a2e31c/grpclib-0.2.3rc2.tar.gz" } ], "0.2.3rc3": [ { "comment_text": "", "digests": { "md5": "639db5dda6a2ae15139a81af1a99aa0b", "sha256": "18a735a768b5fbbf0683439d74c70140bf8060d532921eeb20c324cd259ea8b4" }, "downloads": -1, "filename": "grpclib-0.2.3rc3.tar.gz", "has_sig": false, "md5_digest": "639db5dda6a2ae15139a81af1a99aa0b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 35028, "upload_time": "2019-03-29T11:22:42", "url": "https://files.pythonhosted.org/packages/cd/82/3f8d5c046194be248b930b3fc42f808790b5ccb5b5f5ec9ad52a7648aead/grpclib-0.2.3rc3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "9a4c4ae40c3f5137f2e955b613c1151e", "sha256": "bb1d5b9bbe73cdb95e23e852bad5d1281ca7153c7943bea2975db96663e087bc" }, "downloads": -1, "filename": "grpclib-0.2.4.tar.gz", "has_sig": false, "md5_digest": "9a4c4ae40c3f5137f2e955b613c1151e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 35083, "upload_time": "2019-05-03T12:19:36", "url": "https://files.pythonhosted.org/packages/6a/1a/c9d44c9c9bc5c0ed40d82b84aec34899d726206c09aa6202c796f4ce4026/grpclib-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "4c32718d968fa9f75f7a8f77470aea1b", "sha256": "700e0d56ff7cb7a492da3c2f743ed0b996492e5fe89ed928e484fd8cc4ba83f0" }, "downloads": -1, "filename": "grpclib-0.2.5.tar.gz", "has_sig": false, "md5_digest": "4c32718d968fa9f75f7a8f77470aea1b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 35130, "upload_time": "2019-05-23T13:05:02", "url": "https://files.pythonhosted.org/packages/d5/3d/773877b38a028160e851003ef06cc6cfd3dd5a3074297b707f1c63e86f07/grpclib-0.2.5.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "f4794e9eebb5bf449270b2c1392dd032", "sha256": "d19e2ea87cb073e5b0825dfee15336fd2b1c09278d271816e04c90faddc107ea" }, "downloads": -1, "filename": "grpclib-0.3.0.tar.gz", "has_sig": false, "md5_digest": "f4794e9eebb5bf449270b2c1392dd032", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 40515, "upload_time": "2019-08-03T19:54:42", "url": "https://files.pythonhosted.org/packages/cf/9b/3be61c74fe16439ad1eb937b11617ff69a9ef0a3450a01bab5b2df9255cf/grpclib-0.3.0.tar.gz" } ], "0.3.0rc1": [ { "comment_text": "", "digests": { "md5": "9b2f9c8e42242bab88b108a9b9f7555d", "sha256": "99ccbffce7426d4771bd60ab30c55d2ecf9432751534b3358b8eee89479348fc" }, "downloads": -1, "filename": "grpclib-0.3.0rc1.tar.gz", "has_sig": false, "md5_digest": "9b2f9c8e42242bab88b108a9b9f7555d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 36949, "upload_time": "2019-03-31T15:26:13", "url": "https://files.pythonhosted.org/packages/ce/d8/c6d42147bb9e36900d1459cc38383656e3e2c7ecd801d95e8944d81f2147/grpclib-0.3.0rc1.tar.gz" } ], "0.3.0rc2": [ { "comment_text": "", "digests": { "md5": "d1521ee3187bbadca0c8f1ba1596fbfb", "sha256": "b9c6ee55115d034397320d538818e945a6aa54f7ecbf1ee30dce69f7549a05de" }, "downloads": -1, "filename": "grpclib-0.3.0rc2.tar.gz", "has_sig": false, "md5_digest": "d1521ee3187bbadca0c8f1ba1596fbfb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 37870, "upload_time": "2019-05-14T19:07:16", "url": "https://files.pythonhosted.org/packages/2a/75/652792ce0ef0382d9b19981d87c1c01c6fd6da344b95e4e3a1f494fab7d2/grpclib-0.3.0rc2.tar.gz" } ], "0.3.0rc3": [ { "comment_text": "", "digests": { "md5": "7777de2eece197d7043405895ce6995a", "sha256": "617f31edbfa9f2279596926d28a69cb0443b69726f5fbc8ccb84df3d3201309c" }, "downloads": -1, "filename": "grpclib-0.3.0rc3.tar.gz", "has_sig": false, "md5_digest": "7777de2eece197d7043405895ce6995a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 39075, "upload_time": "2019-05-23T13:15:21", "url": "https://files.pythonhosted.org/packages/f9/78/96d97838a99451b38472a31981cdf2e1242dfd6509e86edf44a9e0dc44ef/grpclib-0.3.0rc3.tar.gz" } ], "0.3.0rc4": [ { "comment_text": "", "digests": { "md5": "0dfb5e338427a6e1be6300a15b05518f", "sha256": "c21008bc0c2660638c8db01034e24d5f1deb9dfbcdb68e9860ab93c34dc4d980" }, "downloads": -1, "filename": "grpclib-0.3.0rc4.tar.gz", "has_sig": false, "md5_digest": "0dfb5e338427a6e1be6300a15b05518f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 40340, "upload_time": "2019-06-02T00:07:03", "url": "https://files.pythonhosted.org/packages/4d/6d/e48ccddcb1f079a2d687a1ce607136fa17853fe2e5a0d9d3af5aa9c910a7/grpclib-0.3.0rc4.tar.gz" } ], "0.3.0rc5": [ { "comment_text": "", "digests": { "md5": "f36da7e15f5f287ea9f2b17d7cd38046", "sha256": "bc2c2e956a56f13b0431f23046f0bedde3593f63cbd6a40e3c4585fa6f9c2ef0" }, "downloads": -1, "filename": "grpclib-0.3.0rc5.tar.gz", "has_sig": false, "md5_digest": "f36da7e15f5f287ea9f2b17d7cd38046", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 40461, "upload_time": "2019-07-10T14:13:11", "url": "https://files.pythonhosted.org/packages/12/2e/1f7a62a08a3322dead485b26407a75dfbb8c349cf4b0eb23db3cecf9f31d/grpclib-0.3.0rc5.tar.gz" } ], "0.3.1rc1": [ { "comment_text": "", "digests": { "md5": "4418aeb2ffd6ead5590df4bb5704a176", "sha256": "70272396e615497b2ee9ea9de28d519e349bacae7bf426db4dfbc8dcb99e53e8" }, "downloads": -1, "filename": "grpclib-0.3.1rc1.tar.gz", "has_sig": false, "md5_digest": "4418aeb2ffd6ead5590df4bb5704a176", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 41872, "upload_time": "2019-08-29T07:57:05", "url": "https://files.pythonhosted.org/packages/4e/8a/6ec48db3c6a076ae31b4c3337b12807db4a0d34f2aae9e017125bc9efd60/grpclib-0.3.1rc1.tar.gz" } ], "0.3.1rc2": [ { "comment_text": "", "digests": { "md5": "f02b7b6b50874fa6fb4aa4fa178f0111", "sha256": "2d63cee35f764e40a7ea196f27354d2f4ab936401c40b14128bbb4fec06f51d4" }, "downloads": -1, "filename": "grpclib-0.3.1rc2.tar.gz", "has_sig": false, "md5_digest": "f02b7b6b50874fa6fb4aa4fa178f0111", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 43119, "upload_time": "2019-09-18T09:52:59", "url": "https://files.pythonhosted.org/packages/39/8d/cf61decc44113ec482b65e4970b289318a3f0004cc7f1f5f060830a596c0/grpclib-0.3.1rc2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f4794e9eebb5bf449270b2c1392dd032", "sha256": "d19e2ea87cb073e5b0825dfee15336fd2b1c09278d271816e04c90faddc107ea" }, "downloads": -1, "filename": "grpclib-0.3.0.tar.gz", "has_sig": false, "md5_digest": "f4794e9eebb5bf449270b2c1392dd032", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 40515, "upload_time": "2019-08-03T19:54:42", "url": "https://files.pythonhosted.org/packages/cf/9b/3be61c74fe16439ad1eb937b11617ff69a9ef0a3450a01bab5b2df9255cf/grpclib-0.3.0.tar.gz" } ] }