class_docstr: Converts a dataflow plan to an execution plan.
class_docstr_tok: ["Converts","a","dataflow","plan","to","an","execution","plan","."]
docstr: Convert the dataflow plan to an execution plan.
docstr_tok: ["Convert","the","dataflow","plan","to","an","execution","plan","."]
code: def convert_to_execution_plan(
      self, dataflow_plan: DataflowPlan
  ) -> ExecutionPlan:
      """Convert the dataflow plan to an execution plan."""
      assert (
          len(dataflow_plan.sink_output_nodes) == 1
      ), "Only 1 sink node in the plan is currently supported."
      return dataflow_plan.sink_output_nodes[
          0
      ].accept_sink_node_visitor(self)
  
file_path: metricflow/metricflow/plan_conversion/dataflow_to_execution.py
imports: from __future__ import annotations
  import logging
  from typing import Optional, Union
  from metricflow.dag.id_generation import EXEC_PLAN_PREFIX, SQL_QUERY_PLAN_PREFIX, IdGeneratorRegistry
  from metricflow.dataflow.dataflow_plan import BaseOutput, ComputedMetricsOutput, DataflowPlan, SinkNodeVisitor, WriteToResultDataframeNode, WriteToResultTableNode
  from metricflow.dataflow.sql_table import SqlTable
  from metricflow.execution.execution_plan import ExecutionPlan, ExecutionPlanTask, SelectSqlQueryToDataFrameTask, SelectSqlQueryToTableTask
  from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
  from metricflow.protocols.sql_client import SqlClient
  from metricflow.sql.render.sql_plan_renderer import SqlQueryPlanRenderer
  from metricflow.sql.sql_plan import SqlQueryPlan
  from metricflow.sql.sql_plan_to_text import sql_query_plan_as_text
  from metricflow.sql_request.sql_request_attributes import SqlJsonTag
label_desc: Use image node_id 5 for calling the DataflowToExecutionPlanConverter obj's underlying member method code with example usage: obj.convert_to_execution_plan(dataflow_plan) and returns: dataflow_plan