"Michele Simionato" <[EMAIL PROTECTED]> writes:
> I have realized today that defining decorators for functions
> with generic signatures is pretty non-trivial.
I've not completely read your post ;-), but I assume you're trying to do
something that I've also done some time ago. Maybe the following code
snippet is useful for you - it creates a source code string which can
than be compiled.
The code prints this when run:
"""
def f(a, b=42, c='spam', d=None):
'docstring'
return f._api_(a, b, c, d)
def g(*args, **kw):
''
return g._api_(*args, **kw)
"""
Thomas
<code>
def make_codestring(func):
import inspect
args, varargs, varkw, defaults = inspect.getargspec(func)
return "def %s%s:\n %r\n return %s._api_%s" % \
(func.func_name,
inspect.formatargspec(args, varargs, varkw, defaults),
func.func_doc or "",
func.func_name,
inspect.formatargspec(args, varargs, varkw))
def f(a, b=42, c="spam", d=None):
"docstring"
def g(*args, **kw):
pass
print make_codestring(f)
print make_codestring(g)
</code>
--
http://mail.python.org/mailman/listinfo/python-list