jsonrpc-requests: a compact JSON-RPC client library backed by requests
This is a compact and simple JSON-RPC client implementation written while debugging a picky server.
- Python 2.7, 3.4, 3.5, 3.6 compatible
- Exposes requests options
- Supports nested namespaces (eg. app.users.getUsers())
- 100% test coverage
- Batch requests (http://www.jsonrpc.org/specification#batch)
from jsonrpc_requests import Server
server = Server('http://localhost:8080')
server.foo(1, 2)
server.foo(bar=1, baz=2)
server.foo({'foo': 'bar'})
server.foo.bar(baz=1, qux=2)
A notification:
from jsonrpc_requests import Server
server.foo(bar=1, _notification=True)
Pass through arguments to requests (see also requests documentation)
from jsonrpc_requests import Server
server = Server('http://localhost:8080', auth=('user', 'pass'), headers={'x-test2': 'true'})
Pass through requests exceptions
from jsonrpc_requests import Server, TransportError
server = Server('http://unknown-host')
try:
server.foo()
except TransportError as transport_error:
print(transport_error.cause) # this will hold a `requests.exceptions.RequestException` instance
Install the Python tox package and run tox
, it'll test this package with various versions of Python.
@mbroadst for providing full support for nested method calls, JSON-RPC RFC compliance and other improvements.
@vaab for providing api and tests improvements, better RFC compliance.