class_docstr: Task generator for executing a sync pipeline.
  
  Calling `generate` is not thread-safe. Concurrent calls to `generate` should
  be explicitly serialized. Since MLMD may be updated upon call to `generate`,
  it's also not safe to call `generate` on different instances of this class
  where the instances refer to the same MLMD db and the same pipeline IR.
class_docstr_tok: ["Task","generator","for","executing","a","sync","pipeline",".","Calling","`","generate","`","is","not","thread-safe",".","Concurrent","calls","to","`","generate","`","should","be","explicitly","serialized",".","Since","MLMD","may","be","updated","upon","call","to","`","generate","`",",","it","'s","also","not","safe","to","call","`","generate","`","on","different","instances","of","this","class","where","the","instances","refer","to","the","same","MLMD","db","and","the","same","pipeline","IR","."]
code: def get_tasks_for_node(
      self,
      node: node_proto_view.NodeProtoView,
      pipeline_state: pstate.PipelineState,
  ) -> List[task_lib.Task]:
      return _Generator(
          self._mlmd_connection_manager,
          pipeline_state,
          self._is_task_id_tracked_fn,
          self._service_job_manager,
          self._fail_fast,
      ).generate_tasks_for_node(node)
  
imports: import collections
  import textwrap
  from typing import Callable, Dict, List, Mapping, Optional, Set
  from absl import logging
  from tfx.orchestration import node_proto_view
  from tfx.orchestration.experimental.core import mlmd_state
  from tfx.orchestration.experimental.core import pipeline_state
  from tfx.orchestration.experimental.core import service_jobs
  from tfx.orchestration.experimental.core import task
  from tfx.orchestration.experimental.core import task_gen
  from tfx.orchestration.experimental.core import task_gen_utils
  from tfx.orchestration import mlmd_connection_manager
  from tfx.orchestration.portable.input_resolution import exceptions
  from tfx.orchestration.portable.mlmd import execution_lib
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.utils import status
  from tfx.utils import topsort
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 3 for calling the SyncPipelineTaskGenerator obj's underlying member method code with example usage: obj.get_tasks_for_node(node, pipeline_state) and returns: _Generator