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)
 |