Update
This commit is contained in:
@@ -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]
|
||||||
|
|||||||
Reference in New Issue
Block a user