class_docstr: Context manager for setup/teardown tasks.
  
  :meta private:
code: def _set_dependency(task, receiving_task, upstream):
      if upstream:
          task.set_upstream(receiving_task)
      else:
          task.set_downstream(receiving_task)
  
imports: from __future__ import annotations
  from typing import TYPE_CHECKING, cast
  from airflow.exceptions import AirflowException
label_desc: Use image node_id 8 for calling the BaseSetupTeardownContext obj's underlying member method code with example usage: obj._set_dependency(task, receiving_task, upstream) without return types