Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _get_code_message_and_data(error: Union[Exception, str]
) -> Tuple[int, str, Any]:
assert isinstance(error, (Exception, str))
data = None
if isinstance(error, Exception):
if hasattr(error, 'jsonrpc_error_code'):
code = error.jsonrpc_error_code
msg = str(error)
try:
data = error.data
except AttributeError:
pass
elif isinstance(error, InvalidRequestError):
code = JSONRPCInvalidRequestError.jsonrpc_error_code
msg = JSONRPCInvalidRequestError.message
elif isinstance(error, MethodNotFoundError):
code = JSONRPCMethodNotFoundError.jsonrpc_error_code
msg = JSONRPCMethodNotFoundError.message
elif isinstance(error, InvalidParamsError):
code = JSONRPCInvalidParamsError.jsonrpc_error_code
msg = JSONRPCInvalidParamsError.message
else:
# allow exception message to propagate
code = JSONRPCServerError.jsonrpc_error_code
if len(error.args) == 2:
msg = str(error.args[0])
data = error.args[1]
else:
msg = str(error)
def _get_code_and_message(error):
assert isinstance(error, (Exception, six.string_types))
if isinstance(error, Exception):
if hasattr(error, "msgpackrpc_error_code"):
code = error.msgpackrpc_error_code
msg = str(error)
elif isinstance(error, InvalidRequestError):
code = MSGPACKRPCInvalidRequestError.msgpackrpc_error_code
msg = MSGPACKRPCInvalidRequestError.message
elif isinstance(error, MethodNotFoundError):
code = MSGPACKRPCMethodNotFoundError.msgpackrpc_error_code
msg = MSGPACKRPCMethodNotFoundError.message
else:
# allow exception message to propagate
code = MSGPACKRPCServerError.msgpackrpc_error_code
msg = str(error)
else:
code = -32000
msg = error
return code, msg
) -> 'JSONRPCRequest':
"""Creates a new :py:class:`JSONRPCRequest` object.
Called by the client when constructing a request.
JSON RPC allows either the ``args`` or ``kwargs`` argument to be set.
:param str method: The method name to invoke.
:param list args: The positional arguments to call the method with.
:param dict kwargs: The keyword arguments to call the method with.
:param bool one_way: The request is an update, i.e. it does not expect a reply.
:return: A new request instance
:rtype: :py:class:`JSONRPCRequest`
:raises InvalidRequestError: when ``args`` and ``kwargs`` are both defined.
"""
if args and kwargs:
raise InvalidRequestError(
'Does not support args and kwargs at '
'the same time'
)
request = self.request_factory()
request.one_way = one_way
if not one_way:
request.unique_id = self._get_unique_id()
request.method = method
request.args = args
request.kwargs = kwargs
return request