code: def _parse_single_response(cls, response_data):
          
  
          if not isinstance(response_data, dict):
              raise errors.RPCInvalidRequest("No valid RPC-package.")
  
          if "id" not in response_data:
              raise errors.RPCInvalidRequest("""Invalid Response, "id" missing.""")
  
          request_id = response_data['id']
  
          if "jsonrpc" not in response_data:
              raise errors.RPCInvalidRequest("""Invalid Response, "jsonrpc" missing.""", request_id)
          if not isinstance(response_data["jsonrpc"], (str, unicode)):
              raise errors.RPCInvalidRequest("""Invalid Response, "jsonrpc" must be a string.""")
          if response_data["jsonrpc"] != "2.0":
              raise errors.RPCInvalidRequest("""Invalid jsonrpc version.""", request_id)
  
          error = response_data.get('error', None)
          result = response_data.get('result', None)
  
          if error and result:
              raise errors.RPCInvalidRequest("""Invalid Response, only "result" OR "error" allowed.""", request_id)
  
          if error:
              if not isinstance(error, dict):
                  raise errors.RPCInvalidRequest("Invalid Response, invalid error-object.", request_id)
  
              if not ("code" in error and "message" in error):
                  raise errors.RPCInvalidRequest("Invalid Response, invalid error-object.", request_id)
  
              error_data = error.get("data", None)
  
              if error['code'] in errors.ERROR_CODE_CLASS_MAP:
                  raise errors.ERROR_CODE_CLASS_MAP[error['code']](error_data, request_id)
              else:
                  error_object = errors.RPCFault(error_data, request_id)
                  error_object.error_code = error['code']
                  error_object.message = error['message']
                  raise error_object
  
          return result, request_id
docs: de-serialize a JSON-RPC Response/error
  
          :Returns: | [result, id] for Responses
          :Raises:  | RPCFault+derivates for error-packages/faults, RPCParseError, RPCInvalidRPC