Client¶
JSON-RPC client.
- class pjrpc.client.AbstractClient(request_class=<class 'pjrpc.common.v20.Request'>, response_class=<class 'pjrpc.common.v20.Response'>, batch_request_class=<class 'pjrpc.common.v20.BatchRequest'>, batch_response_class=<class 'pjrpc.common.v20.BatchResponse'>, error_cls=<class 'pjrpc.common.exceptions.JsonRpcError'>, id_gen_impl=<function sequential>, json_loader=<function loads>, json_dumper=<function dumps>, json_encoder=<class 'pjrpc.common.common.JSONEncoder'>, json_decoder=None, strict=True, request_args=None, tracers=())¶
Bases:
BaseAbstractClient
Abstract synchronous JSON-RPC client.
- Parameters
batch_request_class (Type[BatchRequest]) –
batch_response_class (Type[BatchResponse]) –
error_cls (Type[JsonRpcError]) –
id_gen_impl (Callable[[...], Generator[Union[str, int], None, None]]) –
json_loader (Callable) –
json_dumper (Callable) –
json_encoder (Type[JSONEncoder]) –
json_decoder (Optional[JSONDecoder]) –
strict (bool) –
- property batch: pjrpc.client.client.Batch¶
Client batch wrapper.
- notify(method, *args, _trace_ctx=namespace(), **kwargs)¶
Makes a notification request
- call(method, *args, _trace_ctx=namespace(), **kwargs)¶
Makes JSON-RPC call.
- Parameters
method (str) – method name
args (Any) – method positional arguments
kwargs (Any) – method named arguments
_trace_ctx (SimpleNamespace) – tracers request context
- Returns
response result
- Return type
- class pjrpc.client.AbstractAsyncClient(request_class=<class 'pjrpc.common.v20.Request'>, response_class=<class 'pjrpc.common.v20.Response'>, batch_request_class=<class 'pjrpc.common.v20.BatchRequest'>, batch_response_class=<class 'pjrpc.common.v20.BatchResponse'>, error_cls=<class 'pjrpc.common.exceptions.JsonRpcError'>, id_gen_impl=<function sequential>, json_loader=<function loads>, json_dumper=<function dumps>, json_encoder=<class 'pjrpc.common.common.JSONEncoder'>, json_decoder=None, strict=True, request_args=None, tracers=())¶
Bases:
BaseAbstractClient
Abstract asynchronous JSON-RPC client.
- Parameters
batch_request_class (Type[BatchRequest]) –
batch_response_class (Type[BatchResponse]) –
error_cls (Type[JsonRpcError]) –
id_gen_impl (Callable[[...], Generator[Union[str, int], None, None]]) –
json_loader (Callable) –
json_dumper (Callable) –
json_encoder (Type[JSONEncoder]) –
json_decoder (Optional[JSONDecoder]) –
strict (bool) –
- property batch: pjrpc.client.client.AsyncBatch¶
Client batch wrapper.
- async send(request, _trace_ctx=namespace(), **kwargs)¶
Sends a JSON-RPC request.
- Parameters
request (Request) – request instance
kwargs (Any) – additional client request argument
_trace_ctx (SimpleNamespace) – tracers request context
- Returns
response instance
- Return type
- async notify(method, *args, _trace_ctx=namespace(), **kwargs)¶
Makes a notification request
- class pjrpc.client.AsyncBatch(client)¶
Bases:
BaseBatch
Asynchronous batch wrapper. Used to make asynchronous JSON-RPC batch requests.
- Parameters
client (AbstractAsyncClient) –
- class Proxy(batch)¶
Bases:
BaseProxy
- Parameters
batch (AsyncBatch) –
- async call(_trace_ctx=namespace())¶
Makes an RPC call.
- Parameters
_trace_ctx (SimpleNamespace) – tracers request context
- Return type
- async call(_trace_ctx=namespace())¶
Makes a JSON-RPC request.
- Parameters
_trace_ctx (SimpleNamespace) – tracers request context
- Returns
request results as a tuple
- Return type
- async send(request, _trace_ctx=namespace(), **kwargs)¶
Sends a JSON-RPC batch request.
- Parameters
request (BatchRequest) – request instance
kwargs (Any) – additional client request argument
_trace_ctx (SimpleNamespace) – tracers request context
- Returns
response instance
- Return type
- class pjrpc.client.BaseBatch(client)¶
Bases:
ABC
Base batch wrapper. Implements some methods to wrap multiple JSON-RPC requests into a single batch request.
- Parameters
client (BaseAbstractClient) – JSON-RPC client instance
- class BaseProxy(batch)¶
Bases:
ABC
Proxy object. Provides syntactic sugar to make method calls using dot notation.
- Parameters
batch (BaseBatch) – batch wrapper
- abstract call(_trace_ctx=namespace())¶
Makes a JSON-RPC request.
- Parameters
_trace_ctx (SimpleNamespace) – tracers request context
- Returns
request results as a tuple
- Return type
- abstract send(request, _trace_ctx=namespace(), **kwargs)¶
Sends a JSON-RPC batch request.
- Parameters
request (BatchRequest) – request instance
kwargs (Any) – additional client request argument
_trace_ctx (SimpleNamespace) – tracers request context
- Returns
response instance
- Return type
Optional[Union[Awaitable[Optional[BatchResponse]], BatchResponse]]
- add(method, *args, **kwargs)¶
Adds the method call to the batch.
- class pjrpc.client.BaseAbstractClient(request_class=<class 'pjrpc.common.v20.Request'>, response_class=<class 'pjrpc.common.v20.Response'>, batch_request_class=<class 'pjrpc.common.v20.BatchRequest'>, batch_response_class=<class 'pjrpc.common.v20.BatchResponse'>, error_cls=<class 'pjrpc.common.exceptions.JsonRpcError'>, id_gen_impl=<function sequential>, json_loader=<function loads>, json_dumper=<function dumps>, json_encoder=<class 'pjrpc.common.common.JSONEncoder'>, json_decoder=None, strict=True, request_args=None, tracers=())¶
Bases:
ABC
Base abstract JSON-RPC client.
- Parameters
batch_request_class (Type[BatchRequest]) – batch request class
batch_response_class (Type[BatchResponse]) – batch response class
id_gen_impl (Callable[[...], Generator[Union[str, int], None, None]]) – identifier generator
json_loader (Callable) – json loader
json_dumper (Callable) – json dumper
json_encoder (Type[JSONEncoder]) – json encoder
json_decoder (Optional[JSONDecoder]) – json decoder
error_cls (Type[JsonRpcError]) – JSON-RPC error base class
strict (bool) – if
True
checks that a request and a response identifiers match
- class Proxy(client)¶
Bases:
object
Proxy object. Provides syntactic sugar to make method call using dot notation.
- Parameters
client (BaseAbstractClient) – JSON-RPC client instance
- class pjrpc.client.Batch(client)¶
Bases:
BaseBatch
Batch wrapper. Implements some methods to wrap multiple JSON-RPC requests into a single batch request.
- Parameters
client (AbstractClient) – JSON-RPC client instance
- class Proxy(batch)¶
Bases:
BaseProxy
- Parameters
batch (Batch) –
- call(_trace_ctx=namespace())¶
Makes an RPC call.
- Parameters
_trace_ctx (SimpleNamespace) – tracers request context
- Return type
- call(_trace_ctx=namespace())¶
Makes a JSON-RPC request.
- Parameters
_trace_ctx (SimpleNamespace) – tracers request context
- Returns
request results as a tuple
- Return type
- send(request, _trace_ctx=namespace(), **kwargs)¶
Sends a JSON-RPC batch request.
- Parameters
request (BatchRequest) – request instance
kwargs (Any) – additional client request argument
_trace_ctx (SimpleNamespace) – tracers request context
- Returns
response instance
- Return type
- class pjrpc.client.LoggingTracer(logger=<Logger pjrpc.client (WARNING)>, level=10)¶
Bases:
Tracer
JSON-RPC client logging tracer.
- on_request_begin(trace_context, request)¶
Handler called before JSON-RPC request begins.
- Parameters
trace_context (SimpleNamespace) – request trace context
request (AbstractRequest) – JSON-RPC request
- Return type
None
- on_request_end(trace_context, request, response)¶
Handler called after JSON-RPC request ends.
- Parameters
trace_context (SimpleNamespace) – request trace context
request (AbstractRequest) – JSON-RPC request
response (Optional[AbstractResponse]) – JSON-RPC response
- Return type
None
- on_error(trace_context, request, error)¶
Handler called when JSON-RPC request failed.
- Parameters
trace_context (SimpleNamespace) – request trace context
request (AbstractRequest) – JSON-RPC request
error (BaseException) – raised exception
- Return type
None
- class pjrpc.client.Tracer¶
Bases:
object
JSON-RPC client tracer.
- on_request_begin(trace_context, request)¶
Handler called before JSON-RPC request begins.
- Parameters
trace_context (SimpleNamespace) – request trace context
request (AbstractRequest) – JSON-RPC request
- Return type
None
- on_request_end(trace_context, request, response)¶
Handler called after JSON-RPC request ends.
- Parameters
trace_context (SimpleNamespace) – request trace context
request (AbstractRequest) – JSON-RPC request
response (Optional[AbstractResponse]) – JSON-RPC response
- Return type
None
- on_error(trace_context, request, error)¶
Handler called when JSON-RPC request failed.
- Parameters
trace_context (SimpleNamespace) – request trace context
request (AbstractRequest) – JSON-RPC request
error (BaseException) – raised exception
- Return type
None
Backends¶
- class pjrpc.client.backend.requests.Client(url, session=None, **kwargs)¶
Bases:
AbstractClient
Requests library client backend.
- Parameters
url (str) – url to be used as JSON-RPC endpoint.
session (Optional[Session]) – custom session to be used instead of
requests.Session
kwargs (Any) – parameters to be passed to
pjrpc.client.AbstractClient
- close()¶
Closes the current http session.
- Return type
None
- class pjrpc.client.backend.aiohttp.Client(url, session_args=None, session=None, **kwargs)¶
Bases:
AbstractAsyncClient
Aiohttp library client backend.
- Parameters
url (str) – url to be used as JSON-RPC endpoint
session_args (Optional[Dict[str, Any]]) – additional
aiohttp.ClientSession
argumentssession (Optional[ClientSession]) – custom session to be used instead of
aiohttp.ClientSession
kwargs (Any) –
- async close()¶
Closes current http session.
- Return type
None
- class pjrpc.client.backend.kombu.Client(broker_url, queue_name=None, conn_args=None, exchange_name=None, exchange_args=None, routing_key=None, result_queue_name=None, result_queue_args=None, **kwargs)¶
Bases:
AbstractClient
kombu based JSON-RPC client. Note: the client is not thread-safe.
- Parameters
broker_url (str) – broker connection url
conn_args (Optional[Dict[str, Any]]) – broker connection arguments.
queue_name (Optional[str]) – queue name to publish requests to
exchange_name (Optional[str]) – exchange to publish requests to. If
None
default exchange is usedexchange_args (Optional[Dict[str, Any]]) – exchange arguments
routing_key (Optional[str]) – reply message routing key. If
None
queue name is usedresult_queue_name (Optional[str]) – result queue name. If
None
random exclusive queue is declared for each requestconn_args – additional connection arguments
kwargs (Any) – parameters to be passed to
pjrpc.client.AbstractClient
- close()¶
Closes the current broker connection.
- Return type
None
- class pjrpc.client.backend.aio_pika.Client(broker_url, queue_name=None, conn_args=None, exchange_name=None, exchange_args=None, routing_key=None, result_queue_name=None, result_queue_args=None, **kwargs)¶
Bases:
AbstractAsyncClient
aio_pika based JSON-RPC client.
- Parameters
broker_url (str) – broker connection url
conn_args (Optional[Dict[str, Any]]) – broker connection arguments.
queue_name (Optional[str]) – queue name to publish requests to
exchange_name (Optional[str]) – exchange to publish requests to. If
None
default exchange is usedexchange_args (Optional[Dict[str, Any]]) – exchange arguments
routing_key (Optional[str]) – reply message routing key. If
None
queue name is usedresult_queue_name (Optional[str]) – result queue name. If
None
random exclusive queue is declared for each requestconn_args – additional connection arguments
kwargs (Any) – parameters to be passed to
pjrpc.client.AbstractClient
- async connect()¶
Opens a connection to the broker.
- Return type
None
- async close()¶
Closes current broker connection.
- Return type
None
Tracer¶
- class pjrpc.client.tracer.Tracer¶
Bases:
object
JSON-RPC client tracer.
- on_request_begin(trace_context, request)¶
Handler called before JSON-RPC request begins.
- Parameters
trace_context (SimpleNamespace) – request trace context
request (AbstractRequest) – JSON-RPC request
- Return type
None
- on_request_end(trace_context, request, response)¶
Handler called after JSON-RPC request ends.
- Parameters
trace_context (SimpleNamespace) – request trace context
request (AbstractRequest) – JSON-RPC request
response (Optional[AbstractResponse]) – JSON-RPC response
- Return type
None
- on_error(trace_context, request, error)¶
Handler called when JSON-RPC request failed.
- Parameters
trace_context (SimpleNamespace) – request trace context
request (AbstractRequest) – JSON-RPC request
error (BaseException) – raised exception
- Return type
None
- class pjrpc.client.tracer.LoggingTracer(logger=<Logger pjrpc.client (WARNING)>, level=10)¶
Bases:
Tracer
JSON-RPC client logging tracer.
- on_request_begin(trace_context, request)¶
Handler called before JSON-RPC request begins.
- Parameters
trace_context (SimpleNamespace) – request trace context
request (AbstractRequest) – JSON-RPC request
- Return type
None
- on_request_end(trace_context, request, response)¶
Handler called after JSON-RPC request ends.
- Parameters
trace_context (SimpleNamespace) – request trace context
request (AbstractRequest) – JSON-RPC request
response (Optional[AbstractResponse]) – JSON-RPC response
- Return type
None
- on_error(trace_context, request, error)¶
Handler called when JSON-RPC request failed.
- Parameters
trace_context (SimpleNamespace) – request trace context
request (AbstractRequest) – JSON-RPC request
error (BaseException) – raised exception
- Return type
None