On 2012-06-07, at 9:28 AM, Michael Foord wrote: > On 6 Jun 2012, at 18:28, Yury Selivanov wrote: >> On 2012-06-06, at 1:13 PM, Alexandre Zani wrote: >> Never copy attributes by hand, always use 'functools.wraps'. It copies >> '__name__', '__qualname__', and bunch of other attributes to the decorator >> object. >> >> We'll probably extend it to copy __signature__ too; then >> 'signature(decor(f))' >> will be the same as 'signature(f)'. >> > > I don't think functools.wraps can copy the signature by default - it's not > uncommon to have decorators that modify signatures. A new parameter to > functools.wraps defaulting to False?
http://mail.python.org/pipermail/python-dev/2012-June/120021.html We just won't copy it at all. See the link above. 'functools.wraps' already sets '__wrapped__' reference to the wrapped function, so we can easily traverse the chain to either first function with __signature__ defined, or to the most inner-decorated function and get a signature for it. - Yury _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com