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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4