class_docstr: Context manager for setup/teardown tasks.
  
  :meta private:
code: def set_setup_task_as_roots(cls, roots):
      setup_task = cls._setup_upstream_of_teardown
      if cls._context_managed_setup_task:
          cls.set_dependency(
              cls._context_managed_setup_task,
              setup_task,
              upstream=False,
          )
      else:
          cls.set_dependency(roots, setup_task, upstream=False)
  
imports: from __future__ import annotations
  from typing import TYPE_CHECKING, cast
  from airflow.exceptions import AirflowException
label_desc: Use image node_id 15 for calling the BaseSetupTeardownContext obj's underlying member method code with example usage: obj.set_setup_task_as_roots(cls, roots) without return types