class_docstr: Context manager for setup/teardown tasks.
  
  :meta private:
code: def pop_teardown_downstream_of_setup(
      cls,
  ) -> AbstractOperator | list[AbstractOperator]:
      old_teardown_task = cls._teardown_downstream_of_setup
      if cls._previous_teardown_downstream_of_setup:
          cls._teardown_downstream_of_setup = (
              cls._previous_teardown_downstream_of_setup.pop()
          )
          teardown_task = cls._teardown_downstream_of_setup
          if teardown_task and old_teardown_task:
              cls.set_dependency(old_teardown_task, teardown_task)
      else:
          cls._teardown_downstream_of_setup = []
      return old_teardown_task
  
imports: from __future__ import annotations
  from typing import TYPE_CHECKING, cast
  from airflow.exceptions import AirflowException
label_desc: Use image node_id 5 for calling the BaseSetupTeardownContext obj's underlying member method code with example usage: obj.pop_teardown_downstream_of_setup(cls) and returns: old_teardown_task