I would say the best way to generically wrap all methods of a class, regardless the method is staticmethod
, classmethod
or any already-decorated method, is to use the Descriptor protocol.
You can read more about my solution in the blog post: https://asyncmove.com/blog/2025/01/all-decorators-systematically-decorating-python-class-methods/