code: def run(self, f, *args, **kwargs):
          
          parent = _ACTION_CONTEXT.set(self)
          try:
              return f(*args, **kwargs)
          finally:
              _ACTION_CONTEXT.reset(parent)
docs: Run the given function with this L{Action} as its execution context.