29 lines
773 B
Python
29 lines
773 B
Python
|
""" JSON-RPC wrappers for version 1.0 and 2.0.
|
|||
|
|
|||
|
Objects diring init operation try to choose JSON-RPC 2.0 and in case of error
|
|||
|
JSON-RPC 1.0.
|
|||
|
from_json methods could decide what format is it by presence of 'jsonrpc'
|
|||
|
attribute.
|
|||
|
|
|||
|
"""
|
|||
|
from .utils import JSONSerializable
|
|||
|
from .jsonrpc1 import JSONRPC10Request
|
|||
|
from .jsonrpc2 import JSONRPC20Request
|
|||
|
|
|||
|
|
|||
|
class JSONRPCRequest(JSONSerializable):
|
|||
|
|
|||
|
""" JSONRPC Request."""
|
|||
|
|
|||
|
@classmethod
|
|||
|
def from_json(cls, json_str):
|
|||
|
data = cls.deserialize(json_str)
|
|||
|
return cls.from_data(data)
|
|||
|
|
|||
|
@classmethod
|
|||
|
def from_data(cls, data):
|
|||
|
if isinstance(data, dict) and "jsonrpc" not in data:
|
|||
|
return JSONRPC10Request.from_data(data)
|
|||
|
else:
|
|||
|
return JSONRPC20Request.from_data(data)
|