commit 500e5134123b798bbd27e73e12f3bc56d653fca9
parent 7c4b4265c744faffa1a13de094b874f7155c5c27
Author: Jean Schurger <jean@schurger.org>
Date: Wed, 12 Mar 2025 16:05:57 +0100
Get the right variables when method is decorated.
Diffstat:
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/encadre/controllers.py b/encadre/controllers.py
@@ -40,10 +40,18 @@ class Controller():
# Prevent inheritance of index__
if root_id == id(attr):
continue
- methods.append(
- (name, attr,
- attr.__code__.co_varnames[1:attr.__code__.co_argcount],
- verbs if verbs != [''] else ['GET']))
+ # dig into decorator
+ if hasattr(attr, '__wrapped__'):
+ methods.append(
+ (name, attr,
+ attr.__wrapped__.__code__.co_varnames[
+ 1:attr.__wrapped__.__code__.co_argcount],
+ verbs if verbs != [''] else ['GET']))
+ else:
+ methods.append(
+ (name, attr,
+ attr.__code__.co_varnames[1:attr.__code__.co_argcount],
+ verbs if verbs != [''] else ['GET']))
framework.add_controller((cls, '__root__' if root else ctrl_name,
version), methods)