encadre

Encadre, petit framework web Python (Flask) : contrôleurs en greffons, validation, tests
git clone https://git.schurger.org/encadre.git
Log | Files | Refs

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:
Mencadre/controllers.py | 16++++++++++++----
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)