This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ncoghlan
Recipients ncoghlan
Date 2013-03-19.17:35:42
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1363714542.8.0.838364934538.issue17482@psf.upfronthosting.co.za>
In-reply-to
Content
functools.update_wrapper inadvertently overwrites the just set __wrapped__ attribute when it updates the contents of __dict__.

This means the intended __wrapped__ chain is never created - instead, for every function in a wrapper stack, __wrapped__ will always refer to the innermost function.

This means that using __wrapped__ to bypass functools.lru_cache doesn't work correctly if the decorated function already has __wrapped__ set.

Explicitly setting __signature__ fortunately still works correctly, since that is checked before recursing down through __wrapped__ in inspect.signature.
History
Date User Action Args
2013-03-19 17:35:42ncoghlansetrecipients: + ncoghlan
2013-03-19 17:35:42ncoghlansetmessageid: <1363714542.8.0.838364934538.issue17482@psf.upfronthosting.co.za>
2013-03-19 17:35:42ncoghlanlinkissue17482 messages
2013-03-19 17:35:42ncoghlancreate