class_docstr: Helper class to handle metadata I/O.
  
  Not thread-safe without external synchronisation.
docstr: Compare if the previous execution is same as current execution.
  
  This method will ignore ID and time related fields.
  
  Args:
    current_execution: the current execution.
    target_execution: the previous execution to be compared with.
  
  Returns:
    whether the previous and current executions are the same.
docstr_tok: ["Compare","if","the","previous","execution","is","same","as","current","execution",".","This","method","will","ignore","ID","and","time","related","fields",".","Args",":","current_execution",":","the","current","execution",".","target_execution",":","the","previous","execution","to","be","compared","with",".","Returns",":","whether","the","previous","and","current","executions","are","the","same","."]
code: def _is_eligible_previous_execution(
      self,
      current_execution: metadata_store_pb2.Execution,
      target_execution: metadata_store_pb2.Execution,
  ) -> bool:
      """Compare if the previous execution is same as current execution.
  
      This method will ignore ID and time related fields.
  
      Args:
        current_execution: the current execution.
        target_execution: the previous execution to be compared with.
  
      Returns:
        whether the previous and current executions are the same.
      """
      current_execution.properties["run_id"].string_value = ""
      target_execution.properties["run_id"].string_value = ""
      current_execution.id = target_execution.id
      # Skip comparing time sensitive fields.
      # The execution might not have the create_time_since_epoch or
      # create_time_since_epoch field if the execution is created by an old
      # version before this field is introduced.
      if hasattr(current_execution, "create_time_since_epoch"):
          current_execution.ClearField("create_time_since_epoch")
      if hasattr(target_execution, "create_time_since_epoch"):
          target_execution.ClearField("create_time_since_epoch")
      if hasattr(current_execution, "last_update_time_since_epoch"):
          current_execution.ClearField("last_update_time_since_epoch")
      if hasattr(target_execution, "last_update_time_since_epoch"):
          target_execution.ClearField("last_update_time_since_epoch")
      return current_execution == target_execution
  
imports: import collections
  import copy
  import hashlib
  import itertools
  import os
  import random
  import time
  import types
  from typing import Any, Dict, List, Optional, Set, Tuple, Type, Union
  import absl
  from tfx.dsl.io import fileio
  from tfx.orchestration import data_types
  from tfx.orchestration.portable.mlmd import event_lib
  from tfx.types import artifact
  from tfx.types import artifact_utils
  import ml_metadata
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 22 for calling the Metadata obj's underlying member method code with example usage: obj._is_eligible_previous_execution(current_execution, target_execution) and returns: unknown