As of now, writing custom decorators correctly requires some experience and it is not as easy as it could be. For instance, typical implementations of decorators involve nested functions, and we all know that flat is better than nested. Moreover, typical implementations of decorators do not preserve the signature of decorated functions, thus confusing both documentation tools and developers. The aim of the decorator module it to simplify the usage of decorators for the average programmer, and to popularize decorators usage giving examples of useful decorators, such as memoize, tracing, redirecting_stdout, locked, etc. WWW: https://github.com/micheles/decorator