mirror of
https://github.com/aljazceru/lightning.git
synced 2026-01-09 17:14:28 +01:00
pyln: Check to see if we have annotations on funcs before accessing
We were indiscriminately accessing the `__annotations__` which could cause issues if the function had been wrapped by some functions such as `functools.partial`. This just checks that the access is safe before doing it. Suggested-by: jarret <@jarret> Signed-off-by: Christian Decker <@cdecker>
This commit is contained in:
@@ -317,9 +317,10 @@ class Plugin(object):
|
||||
@staticmethod
|
||||
def _coerce_arguments(func, ba):
|
||||
args = OrderedDict()
|
||||
annotations = func.__annotations__ if hasattr(func, "__annotations__") else {}
|
||||
for key, val in ba.arguments.items():
|
||||
annotation = func.__annotations__.get(key)
|
||||
if annotation == Millisatoshi:
|
||||
annotation = annotations.get(key, None)
|
||||
if annotation is not None and annotation == Millisatoshi:
|
||||
args[key] = Millisatoshi(val)
|
||||
else:
|
||||
args[key] = val
|
||||
|
||||
Reference in New Issue
Block a user