class_docstr: Execute tasks in the order of the dependencies in the plan, one by one.
class_docstr_tok: ["Execute","tasks","in","the","order","of","the","dependencies","in","the","plan",",","one","by","one","."]
code: def execute_plan(
      self, plan: ExecutionPlan
  ) -> ExecutionResults:  # noqa: D
      results = ExecutionResults()
  
      for leaf_node in plan.sink_nodes:
          self._execute_dfs(leaf_node, results)
  
      return results
  
file_path: metricflow/metricflow/execution/executor.py
imports: from __future__ import annotations
  import logging
  from abc import ABC, abstractmethod
  from collections import OrderedDict
  from typing import Dict
  from metricflow.dag.mf_dag import NodeId
  from metricflow.execution.execution_plan import ExecutionPlan, ExecutionPlanTask, TaskExecutionResult
label_desc: Use image node_id 2 for calling the SequentialPlanExecutor obj's underlying member method code with example usage: obj.execute_plan(plan) and returns: results