def wrap_steps(obj):
for field in dir(obj):
if field.startswith('_'):
continue
if callable(method := getattr(obj, field)):
method = step(method)
setattr(obj, field, method)
return obj
This pattern (wanting to wrap every method on an object in step) probably happens frequently enough that we should provide this in quest.
From the RubberDuck project:
This pattern (wanting to wrap every method on an object in
step
) probably happens frequently enough that we should provide this in quest.