Update
Test / Builder (push) Failing after 2s

This commit is contained in:
2026-04-22 13:55:51 +03:00
parent 65a8ccac59
commit c8a67c29c7
+24 -5
View File
@@ -11,6 +11,25 @@ from .exceptions import *
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
def __handler_execute(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:
raise InvalidParamsError(
id=query['id'],
message='Invalid params: {0}'.format(params)
)
return response
class RPC: class RPC:
"""Основной класс RPC """Основной класс RPC
""" """
@@ -94,7 +113,7 @@ class RPC:
) )
return result return result
def process(self, query): def __execute(self, query):
"""Выполнение метода """Выполнение метода
""" """
result = self.validate(query) result = self.validate(query)
@@ -103,7 +122,7 @@ class RPC:
name = query['method'] name = query['method']
if name not in self.__handlers: if name not in self.__handlers:
result = MethodNotFoundError( result = MethodNotFoundError(
message=f'Метод не найден: {name}', message=f'Метод {name} не найден',
id=query['id'] id=query['id']
) )
return result return result
@@ -111,7 +130,7 @@ class RPC:
handler = self.__handlers[name] handler = self.__handlers[name]
try: try:
response = handler(query) response = __handler_execute(handler, query)
except JSONRPCError as e: except JSONRPCError as e:
log.error(traceback.format_exc()) log.error(traceback.format_exc())
response = InternalError( response = InternalError(
@@ -139,11 +158,11 @@ class RPC:
"""Вызов метода """Вызов метода
""" """
if isinstance(queries, dict): if isinstance(queries, dict):
result = self.process(queries) result = self.__execute(queries)
elif isinstance(queries, list): elif isinstance(queries, list):
result = [] result = []
for query in queries: for query in queries:
response = self.process(query) response = self.__execute(query)
if response: if response:
result.append(response) result.append(response)
return result return result