Message184648
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. |
|
Date |
User |
Action |
Args |
2013-03-19 17:35:42 | ncoghlan | set | recipients:
+ ncoghlan |
2013-03-19 17:35:42 | ncoghlan | set | messageid: <1363714542.8.0.838364934538.issue17482@psf.upfronthosting.co.za> |
2013-03-19 17:35:42 | ncoghlan | link | issue17482 messages |
2013-03-19 17:35:42 | ncoghlan | create | |
|