class_docstr: Strategy that resolves the latest n(=1) artifacts per each channel.
  
  Note that this ResolverStrategy is experimental and is subject to change in
  terms of both interface and implementation.
  
  Don't construct LatestArtifactStrategy directly, example usage:
  ```
    model_resolver = Resolver(
        strategy_class=LatestArtifactStrategy,
        model=Channel(type=Model),
    ).with_id('latest_model_resolver')
    model_resolver.outputs['model']
  ```
code: def _resolve(self, input_dict: Dict[str, List[types.Artifact]]):
      result = {}
      for k, artifact_list in input_dict.items():
          sorted_artifact_list = sorted(
              artifact_list, key=lambda a: a.id, reverse=True
          )
          result[k] = sorted_artifact_list[
              : min(
                  len(sorted_artifact_list),
                  self._desired_num_of_artifact,
              )
          ]
      return result
  
file_path: tfx/tfx/dsl/input_resolution/strategies/latest_artifact_strategy.py
imports: from typing import Dict, List, Optional
  from tfx import types
  from tfx.dsl.components.common import resolver
  from tfx.utils import doc_controls
  import ml_metadata
label_desc: Use image node_id 2 for calling the LatestArtifactStrategy obj's underlying member method code with example usage: obj._resolve(input_dict) and returns: result