class_docstr: Sources to extract PushedModel data for a model card.
  
  Provide exactly one of `pushed_model_path` or `pushed_model_artifact`.
  
  Attributes:
    pushed_model_path: The path of a PushedModel.
    pushed_model_artifact: The MLMD artifact for a PushedModel.
code: def __post_init__(self):
      if self.pushed_model_path and not self.pushed_model_artifact:
          pass
      elif self.pushed_model_artifact and not self.pushed_model_path:
          self.pushed_model_path = self.pushed_model_artifact.uri
      else:
          raise ValueError(
              "ModelSource needs exactly one of pushed_model_path or "
              "pushed_model_artifact."
          )
  
file_path: model-card-toolkit/model_card_toolkit/utils/tf_sources.py
imports: import dataclasses
  from typing import List, Optional
  import ml_metadata
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 1 for calling the ModelSource obj's underlying member method code with example usage: obj.__post_init__() without return types