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__)
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:
"""Основной класс RPC
"""
@@ -94,7 +113,7 @@ class RPC:
)
return result
def process(self, query):
def __execute(self, query):
"""Выполнение метода
"""
result = self.validate(query)
@@ -103,7 +122,7 @@ class RPC:
name = query['method']
if name not in self.__handlers:
result = MethodNotFoundError(
message=f'Метод не найден: {name}',
message=f'Метод {name} не найден',
id=query['id']
)
return result
@@ -111,7 +130,7 @@ class RPC:
handler = self.__handlers[name]
try:
response = handler(query)
response = __handler_execute(handler, query)
except JSONRPCError as e:
log.error(traceback.format_exc())
response = InternalError(
@@ -139,11 +158,11 @@ class RPC:
"""Вызов метода
"""
if isinstance(queries, dict):
result = self.process(queries)
result = self.__execute(queries)
elif isinstance(queries, list):
result = []
for query in queries:
response = self.process(query)
response = self.__execute(query)
if response:
result.append(response)
return result