A JSON-RPC client library, backed by requests
Project description
This is a compact and simple JSON-RPC client implementation written while debugging a picky server.
Main Features
Python 2.7, 3.4, 3.5, 3.6 compatible
Exposes requests options
Supports nested namespaces (eg. app.users.getUsers())
100% test coverage
TODO
Batch requests (http://www.jsonrpc.org/specification#batch)
Usage
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
Tests
Install the Python tox package and run tox, it’ll test this package with various versions of Python.
Credits
@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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file jsonrpc-requests-0.4.0.zip
.
File metadata
- Download URL: jsonrpc-requests-0.4.0.zip
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96d955e00397bb67a11c8ff3aa73df4c56bbc2c1fb1a3c60a081a6c591e5cd6e |
|
MD5 | 720f93c5dc6556c78fe5ca4c5039a485 |
|
BLAKE2b-256 | caecda48ac30344bbb53e92f6e5e4e97df919bab351db146d249c471a124f390 |