class_docstr: PairedSpans operator.
code: def _get_artifacts(
      self, artifacts: Sequence[types.Artifact]
  ) -> Dict[Tuple[int, int], types.Artifact]:
      valid = ops_utils.get_valid_artifacts(
          artifacts, ops_utils.SPAN_AND_VERSION_PROPERTIES
      )
      artifact_dict = {}
      for art in ops_utils.filter_artifacts_by_span(
          valid,
          span_descending=False,
          n=0,
          keep_all_versions=self.keep_all_versions,
      ):
          artifact_dict[(art.span, art.version)] = art
      return artifact_dict
  
file_path: tfx/tfx/dsl/input_resolution/ops/paired_spans_op.py
imports: import functools
  from typing import Dict, Sequence, Tuple
  from tfx import types
  from tfx.dsl.input_resolution import resolver_op
  from tfx.dsl.input_resolution.ops import ops_utils
  from tfx.utils import typing_utils
label_desc: Use image node_id 1 for calling the PairedSpans obj's underlying member method code with example usage: obj._get_artifacts(artifacts) and returns: artifact_dict