functools is a great module to manipulate functions. However the created functions are not user-friendly :
functools.partial does not provide user-friendly name, help/signature, and docstring
functools.wraps does not truly preserve signature. See details here
Besides there is no counterpart to partial (adding parameters). Nor is there any user-friendly way to generalize to any signature modification or dynamic method creation.
I created makefun to cover all of these issues. I relied on dynamic code compilation (the trick that decorator uses). But it is probably less efficient than embedding it in the python framework itself. So a PEP would probably be useful here, what do you think ?
Related stackoverflow posts:
functoolsis a great module to manipulate functions. However the created functions are not user-friendly :functools.partialdoes not provide user-friendly name, help/signature, and docstringfunctools.wrapsdoes not truly preserve signature. See details hereBesides there is no counterpart to partial (adding parameters). Nor is there any user-friendly way to generalize to any signature modification or dynamic method creation.
I created
makefunto cover all of these issues. I relied on dynamic code compilation (the trick thatdecoratoruses). But it is probably less efficient than embedding it in the python framework itself. So a PEP would probably be useful here, what do you think ?Related stackoverflow posts: