class_docstr: Mixing implementing common dependency setting methods like >> and <<.
docstr: List of root nodes -- ones with no upstream dependencies.
  
  a.k.a. the "start" of this sub-graph
code: def roots(self) -> Sequence[DependencyMixin]:
      """
      List of root nodes -- ones with no upstream dependencies.
  
      a.k.a. the "start" of this sub-graph
      """
      raise NotImplementedError()
  
imports: from __future__ import annotations
  import warnings
  from abc import ABCMeta, abstractmethod
  from typing import TYPE_CHECKING, Any, Iterable, Sequence
  from airflow.exceptions import AirflowException, RemovedInAirflow3Warning
  from airflow.utils.types import NOTSET
label_desc: Use image node_id 1 for calling the DependencyMixin obj's underlying member method code with example usage: obj.roots() without return types