Prior posts on the topic of decorators and monkey patching are as follows.

This batch of posts deals with Python decorators, how the simple pattern most people use isn't correct and how to implement a better decorator.

This batch of posts deals with issues around the more general problem of monkey patching Python code.

Later posts on wrapt, covering what the package can do now, are collected under practical uses for the wrapt package, and the wrapture posts cover a separate package built on the same machinery for testing and tracing.