class_docstr: Represents a directed acyclic graph. The sink nodes will have the connected components.
class_docstr_tok: ["Represents","a","directed","acyclic","graph",".","The","sink","nodes","will","have","the","connected","components","."]
code: def __init__(
      self, dag_id: DagId, sink_nodes: List[DagNodeT]
  ):  # noqa: D
      self._dag_id = dag_id
      self._sink_nodes = sink_nodes
  
imports: from __future__ import annotations
  import html
  import logging
  import textwrap
  from abc import ABC, abstractmethod
  from dataclasses import dataclass
  from typing import Any, Generic, List, Sequence, TypeVar
  import jinja2
  from metricflow.dag.id_generation import IdGeneratorRegistry
  from metricflow.dag.id_prefix import IdPrefix
  from metricflow.dag.prefix_id import PrefixIdGenerator
  from metricflow.visitor import VisitorOutputT
label_desc: Use image node_id 1 to create a new MetricFlowDag object from inherited base classes: Generic with example: obj = MetricFlowDag(dag_id, sink_nodes)