You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							28 lines
						
					
					
						
							773 B
						
					
					
				
			
		
		
	
	
							28 lines
						
					
					
						
							773 B
						
					
					
				| """ 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)
 | |
| 
 |