class_docstr: Stores the results from executing the tasks in an execution plan.
class_docstr_tok: ["Stores","the","results","from","executing","the","tasks","in","an","execution","plan","."]
docstr: Adds the results of executing a task to this.
docstr_tok: ["Adds","the","results","of","executing","a","task","to","this","."]
code: def add_result(
      self, task_id: NodeId, result: TaskExecutionResult
  ) -> None:
      """Adds the results of executing a task to this."""
      assert (
          task_id not in self._results
      ), f"Task ID: {task_id} already in results as {self._results[task_id]}"
      self._results[task_id] = result
  
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 ExecutionResults obj's underlying member method code with example usage: obj.add_result(task_id, result) without return types