This commit is contained in:
2022-02-02 02:34:47 +03:00
parent 2123554ad7
commit a28e2e04d3

View File

@@ -36,7 +36,7 @@ class JsonRpcException(Exception):
class Method: class Method:
def __init__(self, function = None, handler = None, fields = None): def __init__(self, function, handler = None, fields = None):
self.function = function self.function = function
self.handler = handler self.handler = handler
self.fields = fields self.fields = fields
@@ -64,9 +64,14 @@ class JSONRPC:
# )) # ))
# funcname = func.__name__ # funcname = func.__name__
# modulename = func.__module__ # modulename = func.__module__
def wrap(func): def wrap(function, handler = None, fields = None):
# print(func) # print(func)
self.methods[name] = func method = Method(
function = function,
handler = None,
fields = None
)
self.methods[name] = method
return func return func
return wrap return wrap
@@ -75,13 +80,13 @@ class JSONRPC:
""" """
if name not in self.methods: if name not in self.methods:
return None return None
func = self.methods[name] method = self.methods[name]
sig = signature(func) sig = signature(method.function)
# for key in sig.parameters: # for key in sig.parameters:
# print(sig.parameters[key].annotation) # print(sig.parameters[key].annotation)
result = { result = {
'name': getattr(func, '__name__', None), 'name': getattr(method.function, '__name__', None),
'summary': getattr(func, '__doc__', None), 'summary': getattr(method.function, '__doc__', None),
'params': [ 'params': [
{'name': k, 'type': sig.parameters[k].annotation.__name__} {'name': k, 'type': sig.parameters[k].annotation.__name__}
for k in sig.parameters for k in sig.parameters
@@ -95,8 +100,8 @@ class JSONRPC:
""" """
if name not in self.methods: if name not in self.methods:
return None return None
func = self.methods[name] method = self.methods[name]
sig = signature(func) sig = signature(method.function)
params = None params = None
for key in sig.parameters: for key in sig.parameters:
params[key] = '' params[key] = ''
@@ -192,7 +197,8 @@ class JSONRPC:
return result return result
def __getitem__(self, key): def __getitem__(self, key):
return self.methods[key] method = self.methods[key]
return method.function
def __iter__(self): def __iter__(self):
return iter(self.methods) return iter(self.methods)
@@ -202,7 +208,7 @@ class JSONRPC:
def __setitem__(self, key, function, handler = None, fields = None): def __setitem__(self, key, function, handler = None, fields = None):
method = Method(function = function, handler = None, fields = None) method = Method(function = function, handler = None, fields = None)
self.methods[key] = function self.methods[key] = method
def __delitem__(self, key): def __delitem__(self, key):
del self.methods[key] del self.methods[key]