MibooGram/utils/patch/methods.py

18 lines
436 B
Python
Raw 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