From f3f2af0cb0d0357f8f6fbbdef2b51da2fbd465ae Mon Sep 17 00:00:00 2001 From: RemiZOffAlex Date: Sun, 3 May 2026 23:14:10 +0300 Subject: [PATCH] Update --- src/jsonrpc/extractor.py | 25 +++++++++++++++++++++++++ src/jsonrpc/rpc.py | 20 +------------------- 2 files changed, 26 insertions(+), 19 deletions(-) create mode 100644 src/jsonrpc/extractor.py diff --git a/src/jsonrpc/extractor.py b/src/jsonrpc/extractor.py new file mode 100644 index 0000000..1a95596 --- /dev/null +++ b/src/jsonrpc/extractor.py @@ -0,0 +1,25 @@ +__author__ = 'RemiZOffAlex' +__email__ = 'remizoffalex@mail.ru' + +from .exceptions import * + + +def Extract(handler) + wrapper(query): + params = None + if 'params' in query: + params = query['params'] + if params is None: + response = handler() + elif isinstance(params, list): + response = handler(*params) + elif isinstance(params, dict): + response = handler(**params) + else: + response = InvalidParamsError( + id=query['id'], + message='Invalid params: {0}'.format(params) + ) + + return response + return wrapper diff --git a/src/jsonrpc/rpc.py b/src/jsonrpc/rpc.py index b65bd8e..f4a48b1 100644 --- a/src/jsonrpc/rpc.py +++ b/src/jsonrpc/rpc.py @@ -94,24 +94,6 @@ class RPC: ) return result - def __handle(self, handler, query): - params = None - if 'params' in query: - params = query['params'] - if params is None: - response = handler() - elif isinstance(params, list): - response = handler(*params) - elif isinstance(params, dict): - response = handler(**params) - else: - response = InvalidParamsError( - id=query['id'], - message='Invalid params: {0}'.format(params) - ) - - return response - def __execute(self, query): """Выполнение метода """ @@ -129,7 +111,7 @@ class RPC: handler = self.__handlers[name] try: - response = self.__handle(handler, query) + response = handler(handler, query) except JSONRPCError as e: log.error(traceback.format_exc()) response = InternalError(