class_docstr: Internal W&B Artifact model storage.
  
  _model_type_id: (str) The id of the SavedModel subclass used to serialize the model.
class_docstr_tok: ["Internal","W","&","B","Artifact","model","storage",".","_model_type_id",":","(","str",")","The","id","of","the","SavedModel","subclass","used","to","serialize","the","model","."]
code: def from_json(
      cls: Type["_SavedModel"],
      json_obj: dict,
      source_artifact: "Artifact",
  ) -> "_SavedModel":
      path = json_obj["path"]
  
      # First, if the entry is a file, the download it.
      entry = source_artifact.manifest.entries.get(path)
      if entry is not None:
          dl_path = str(source_artifact.get_entry(path).download())
      else:
          # If not, assume it is directory.
          # FUTURE: Add this functionality to the artifact loader
          # (would be nice to parallelize)
          dl_path = _load_dir_from_artifact(source_artifact, path)
  
      # Return the SavedModel object instantiated with the downloaded path
      # and specified adapter.
      return cls(dl_path)
  
imports: import os
  import shutil
  import sys
  from typing import TYPE_CHECKING, Any, ClassVar, Generic, List, Optional, Type, TypeVar, Union, cast
  import wandb
  from wandb import util
  from wandb.sdk.lib import runid
  from wandb.sdk.lib.hashutil import md5_file_hex
  from wandb.sdk.lib.paths import LogicalPath
  from ._private import MEDIA_TMP
  from .base_types.wb_value import WBValue
label_desc: Use image node_id 3 for calling the _SavedModel obj's underlying member method code with example usage: obj.from_json(cls, json_obj, source_artifact) and returns: cls