PaiGram/utils/patch/methods.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

18 lines
436 B
Python
Raw Permalink Normal View History

def patch(obj):
def is_patchable(item):
return getattr(item[1], "patchable", False)
def wrapper(container):
for name, func in filter(is_patchable, container.__dict__.items()):
old = getattr(obj, name, None)
setattr(obj, f"old_{name}", old)
setattr(obj, name, func)
return container
return wrapper
def patchable(func):
func.patchable = True
return func