class_docstr: The execution state of a workflow. This dataclass helps with observation
  and debugging.
class_docstr_tok: ["The","execution","state","of","a","workflow",".","This","dataclass","helps","with","observation","and","debugging","."]
docstr: Get the input. It checks memory first and storage later. It returns None if
  the input does not exist.
docstr_tok: ["Get","the","input",".","It","checks","memory","first","and","storage","later",".","It","returns","None","if","the","input","does","not","exist","."]
code: def get_input(self, task_id: TaskID) -> Optional[WorkflowRef]:
      """Get the input. It checks memory first and storage later. It returns None if
      the input does not exist.
      """
      return self.output_map.get(
          task_id, self.checkpoint_map.get(task_id)
      )
  
imports: import asyncio
  from collections import deque, defaultdict
  import dataclasses
  from dataclasses import field
  import logging
  from typing import List, Dict, Optional, Set, Deque, Callable
  import ray
  from ray.workflow.common import TaskID, WorkflowRef, WorkflowTaskRuntimeOptions
  from ray.workflow.workflow_context import WorkflowTaskContext
label_desc: Use image node_id 1 for calling the WorkflowExecutionState obj's underlying member method code with example usage: obj.get_input(task_id) and returns: self