PaiGram/utils/patch/methods.py
2022-10-10 19:07:28 +08:00

18 lines
436 B
Python

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