{ "info": { "author": "Adam Mills", "author_email": "adam@armills.info", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries" ], "description": "jsonrpc-async: a compact JSON-RPC client library for asyncio\n=======================================================================================================\n\n.. image:: https://travis-ci.org/armills/jsonrpc-async.svg\n :target: https://travis-ci.org/armills/jsonrpc-async\n.. image:: https://coveralls.io/repos/armills/jsonrpc-async/badge.svg\n :target: https://coveralls.io/r/armills/jsonrpc-async\n\nThis is a compact and simple JSON-RPC client implementation for asyncio python code. This code is forked from https://github.com/gciotta/jsonrpc-requests\n\nMain Features\n-------------\n\n* Python 3.5 & 3.6 compatible\n* Supports nested namespaces (eg. `app.users.getUsers()`)\n* 100% test coverage\n\nUsage\n-----\nIt is recommended to manage the aiohttp ClientSession object externally and pass it to the Server constructor. `(See the aiohttp documentation.) `_ If not passed to Server, a ClientSession object will be created automatically.\n\nExecute remote JSON-RPC functions\n\n.. code-block:: python\n\n import asyncio\n from jsonrpc_async import Server\n\n async def routine():\n server = Server('http://localhost:8080')\n try:\n await server.foo(1, 2)\n await server.foo(bar=1, baz=2)\n await server.foo({'foo': 'bar'})\n await server.foo.bar(baz=1, qux=2)\n finally:\n await server.session.close()\n\n asyncio.get_event_loop().run_until_complete(routine())\n\nA notification\n\n.. code-block:: python\n\n import asyncio\n from jsonrpc_async import Server\n\n async def routine():\n server = Server('http://localhost:8080')\n try:\n await server.foo(bar=1, _notification=True)\n finally:\n await server.session.close()\n\n asyncio.get_event_loop().run_until_complete(routine())\n\nPass through arguments to aiohttp (see also `aiohttp documentation `_)\n\n.. code-block:: python\n\n import asyncio\n import aiohttp\n from jsonrpc_async import Server\n\n async def routine():\n server = Server(\n 'http://localhost:8080',\n auth=aiohttp.BasicAuth('user', 'pass'),\n headers={'x-test2': 'true'})\n try:\n await server.foo()\n finally:\n await server.session.close()\n\n asyncio.get_event_loop().run_until_complete(routine())\n\nPass through aiohttp exceptions\n\n.. code-block:: python\n\n import asyncio\n import aiohttp\n from jsonrpc_async import Server\n\n async def routine():\n server = Server('http://unknown-host')\n try:\n await server.foo()\n except TransportError as transport_error:\n print(transport_error.args[1]) # this will hold a aiohttp exception instance\n finally:\n await server.session.close()\n\n asyncio.get_event_loop().run_until_complete(routine())\n\nTests\n-----\nInstall the Python tox package and run ``tox``, it'll test this package with various versions of Python.\n\nChangelog\n---------\n1.1.0 (September 4, 2018)\n~~~~~~~~~~~~~~\n- Added support for using a custom json.loads method `(#1) `_ `@tdivis `_\n\n1.0.1 (August 23, 2018)\n~~~~~~~~~~~~~~\n- Bumped jsonrpc-base to version 1.0.2\n\n1.0.0 (July 6, 2018)\n~~~~~~~~~~~~~~\n- Bumped minimum aiohttp version to 3.0.0\n- Bumped jsonrpc-base to version 1.0.1\n\nCredits\n-------\n`@gciotta `_ for creating the base project `jsonrpc-requests `_.\n\n`@mbroadst `_ for providing full support for nested method calls, JSON-RPC RFC\ncompliance and other improvements.\n\n`@vaab `_ for providing api and tests improvements, better RFC compliance.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/armills/jsonrpc-async", "keywords": "json-rpc async asyncio", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "jsonrpc-async", "package_url": "https://pypi.org/project/jsonrpc-async/", "platform": "", "project_url": "https://pypi.org/project/jsonrpc-async/", "project_urls": { "Homepage": "http://github.com/armills/jsonrpc-async" }, "release_url": "https://pypi.org/project/jsonrpc-async/1.1.0/", "requires_dist": null, "requires_python": "", "summary": "A JSON-RPC client library for asyncio", "version": "1.1.0" }, "last_serial": 4239116, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "ff6aa843d025fb9a1be3c83661188ae0", "sha256": "0ed723f21fce380b1f8644f05254a7c0f2e07be5740f8079d154eb6e174a23a1" }, "downloads": -1, "filename": "jsonrpc-async-0.1.tar.gz", "has_sig": false, "md5_digest": "ff6aa843d025fb9a1be3c83661188ae0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4149, "upload_time": "2016-12-21T03:29:22", "url": "https://files.pythonhosted.org/packages/09/71/6c23b6bb833f5b00e5c50b25feaeb462b942f319aaddaa9d0d2665b7f0f3/jsonrpc-async-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "1c8a3c6892f040681e7594f0238d4a00", "sha256": "be95b7ab2c74ecf56a728e658e5a9c64c3b3baac060391214380c54e28b44e8b" }, "downloads": -1, "filename": "jsonrpc-async-0.2.tar.gz", "has_sig": false, "md5_digest": "1c8a3c6892f040681e7594f0238d4a00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4138, "upload_time": "2017-01-11T14:55:50", "url": "https://files.pythonhosted.org/packages/ad/3c/6b88ff9c991cf48a32b4786941d9f58fc9c94be1050ccb5d20d07c30ce09/jsonrpc-async-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "c164e6b9e89024b54353e1187af90572", "sha256": "9ad481683f4ab9493d469c631609962ab5aae92c747fc03aecfe035b8b7a402e" }, "downloads": -1, "filename": "jsonrpc-async-0.3.tar.gz", "has_sig": false, "md5_digest": "c164e6b9e89024b54353e1187af90572", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4175, "upload_time": "2017-02-15T00:28:24", "url": "https://files.pythonhosted.org/packages/3a/01/c700bffbd7279c2331c12f31400d5ca143794a28fd4aaa305253cd76d692/jsonrpc-async-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "8a9cc845b3bd2504b188f5d6ffbcdf2f", "sha256": "9cd395d66c2288a1788b3709d9fce8ed5c411a41f8da23f3a536ab8cd7e52801" }, "downloads": -1, "filename": "jsonrpc-async-0.4.tar.gz", "has_sig": false, "md5_digest": "8a9cc845b3bd2504b188f5d6ffbcdf2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4186, "upload_time": "2017-02-15T00:37:09", "url": "https://files.pythonhosted.org/packages/45/1a/6513ac10e7fbf76b905eb64fa1e3ebcee43a4a89283e447cf4a3cbaf3bad/jsonrpc-async-0.4.tar.gz" } ], "0.5": [], "0.6": [ { "comment_text": "", "digests": { "md5": "46d7697c554543fe083ea8e84163f36e", "sha256": "fcaf586593c90fd153a37f5d6133c8db286f4b48ee3f747dd3c44a53361e3738" }, "downloads": -1, "filename": "jsonrpc-async-0.6.tar.gz", "has_sig": false, "md5_digest": "46d7697c554543fe083ea8e84163f36e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4160, "upload_time": "2017-04-06T21:01:02", "url": "https://files.pythonhosted.org/packages/ca/18/2b740c8ba81f247d38bc8593e2859d8d4dee1fde9fa554d9d0e76aa5859c/jsonrpc-async-0.6.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "7ad62759a7933f4745d9ac7dc7a8a0c4", "sha256": "6241a221b52e18265fe6bb59c60633acebb6fb5ef8c04de9a076b757aa133b86" }, "downloads": -1, "filename": "jsonrpc-async-1.0.0.tar.gz", "has_sig": false, "md5_digest": "7ad62759a7933f4745d9ac7dc7a8a0c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4235, "upload_time": "2018-07-06T15:38:23", "url": "https://files.pythonhosted.org/packages/b9/95/e1289acf33320dae3daf7bcda056f34d12e80fd41013c6bf12324d9abdfc/jsonrpc-async-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "dd60576ea34750bdf06baeeeef797de2", "sha256": "adda3ff6e122b1932b6e20cf583666ea65db4248bc19b04811a4ccc0f0b03d95" }, "downloads": -1, "filename": "jsonrpc-async-1.0.1.tar.gz", "has_sig": false, "md5_digest": "dd60576ea34750bdf06baeeeef797de2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4233, "upload_time": "2018-08-23T21:30:39", "url": "https://files.pythonhosted.org/packages/25/b1/ea115b6a8701080e7721ced6d0e2dfde9b8caa0ed924058ce19d840553eb/jsonrpc-async-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "b8a4bbc2c11ff0f0a767ddee6f7e1e9f", "sha256": "488ab3b63a96c246f7ded14b3458eb13a36e3e16eb4319aa56806476517c7433" }, "downloads": -1, "filename": "jsonrpc-async-1.1.0.tar.gz", "has_sig": false, "md5_digest": "b8a4bbc2c11ff0f0a767ddee6f7e1e9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4363, "upload_time": "2018-09-04T21:38:21", "url": "https://files.pythonhosted.org/packages/c2/a5/860d83c391fdaa0ed8c9d6d4effdff17b5a8b6edfa1e7187847911f6e9b5/jsonrpc-async-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b8a4bbc2c11ff0f0a767ddee6f7e1e9f", "sha256": "488ab3b63a96c246f7ded14b3458eb13a36e3e16eb4319aa56806476517c7433" }, "downloads": -1, "filename": "jsonrpc-async-1.1.0.tar.gz", "has_sig": false, "md5_digest": "b8a4bbc2c11ff0f0a767ddee6f7e1e9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4363, "upload_time": "2018-09-04T21:38:21", "url": "https://files.pythonhosted.org/packages/c2/a5/860d83c391fdaa0ed8c9d6d4effdff17b5a8b6edfa1e7187847911f6e9b5/jsonrpc-async-1.1.0.tar.gz" } ] }