class_docstr: An ml-metadata store that provides read-only methods for notebooks.
class_docstr_tok: ["An","ml-metadata","store","that","provides","read-only","methods","for","notebooks","."]
docstr: Displays properties of 2 artifacts and executions that generated them.
  
  Args:
    artifact_id: A `int` indicating the id of one artifact.
    other_artifact_id: A `int` indicating the id of another artifact.
    execution_type_name: A `str` indicating the type of executions that
      generated `artifact_id` and `other_artifact_id`.
docstr_tok: ["Displays","properties","of","2","artifacts","and","executions","that","generated","them",".","Args",":","artifact_id",":","A","`","int","`","indicating","the","id","of","one","artifact",".","other_artifact_id",":","A","`","int","`","indicating","the","id","of","another","artifact",".","execution_type_name",":","A","`","str","`","indicating","the","type","of","executions","that","generated","`","artifact_id","`","and","`","other_artifact_id","`","."]
code: def compare_artifact_pair_and_execution_properties(
      self, artifact_id, other_artifact_id, execution_type_name
  ):
      """Displays properties of 2 artifacts and executions that generated them.
  
      Args:
        artifact_id: A `int` indicating the id of one artifact.
        other_artifact_id: A `int` indicating the id of another artifact.
        execution_type_name: A `str` indicating the type of executions that
          generated `artifact_id` and `other_artifact_id`.
      """
      # Get data frame to visualize properties of the 2 artifacts.
      df = self.get_df_from_artifacts_or_executions(
          self.metadata_store.get_artifacts_by_id(
              [artifact_id, other_artifact_id]
          )
      )
      artifacts_df_styler = df.style.set_caption(
          "Properties for Artifacts {}, {}".format(
              artifact_id, other_artifact_id
          )
      )
  
      # Compare properties of the executions that generated these artifacts.
      execution = self.get_execution_for_output_artifact(
          artifact_id, execution_type_name
      )
      other_execution = self.get_execution_for_output_artifact(
          other_artifact_id, execution_type_name
      )
      if not execution or not other_execution:
          return
      executions_df = self.get_df_from_artifacts_or_executions(
          [execution, other_execution]
      )
      executions_df_styler = executions_df.style.set_caption(
          "Properties for Executions that generated Artifacts {}, {}".format(
              artifact_id, other_artifact_id
          )
      )
  
      # Display the HTML.
      # pylint: disable=protected-access
      display_html(
          artifacts_df_styler._repr_html_()
          + executions_df_styler._repr_html_(),
          raw=True,
      )
  
imports: import re
  from IPython.display import display_html
  import matplotlib.pyplot
  import networkx
  import pandas
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 12 for calling the ReadonlyMetadataStore obj's underlying member method code with example usage: obj.compare_artifact_pair_and_execution_properties(artifact_id, other_artifact_id, execution_type_name) without return types