in aws_xray_sdk/ext/sqlalchemy/util/decorators.py [0:0]
def decorate_all_functions(function_decorator):
def decorator(cls):
for c in cls.__bases__:
for name, obj in vars(c).items():
if name.startswith("_"):
continue
if isinstance(obj, types.FunctionType):
try:
obj = obj.__func__ # unwrap Python 2 unbound method
except AttributeError:
pass # not needed in Python 3
setattr(c, name, function_decorator(c, obj))
return cls
return decorator