class_docstr: A single entry in an artifact manifest.
class_docstr_tok: ["A","single","entry","in","an","artifact","manifest","."]
docstr: Download this artifact entry to the specified root path.
  
  Arguments:
      root: (str, optional) The root path in which to download this
          artifact entry. Defaults to the artifact's root.
  
  Returns:
      (str): The path of the downloaded artifact entry.
docstr_tok: ["Download","this","artifact","entry","to","the","specified","root","path",".","Arguments",":","root",":","(","str",",","optional",")","The","root","path","in","which","to","download","this","artifact","entry",".","Defaults","to","the","artifact","'s","root",".","Returns",":","(","str",")",":","The","path","of","the","downloaded","artifact","entry","."]
code: def download(self, root: Optional[str] = None) -> FilePathStr:
      """Download this artifact entry to the specified root path.
  
      Arguments:
          root: (str, optional) The root path in which to download this
              artifact entry. Defaults to the artifact's root.
  
      Returns:
          (str): The path of the downloaded artifact entry.
      """
      if self._parent_artifact is None:
          raise NotImplementedError
  
      root = root or self._parent_artifact._default_root()
      self._parent_artifact._add_download_root(root)
      dest_path = os.path.join(root, self.path)
  
      # Skip checking the cache (and possibly downloading) if the file already exists
      # and has the digest we're expecting.
      if os.path.exists(dest_path) and self.digest == md5_file_b64(
          dest_path
      ):
          return FilePathStr(dest_path)
  
      if self.ref is not None:
          cache_path = self._parent_artifact.manifest.storage_policy.load_reference(
              self, local=True
          )
      else:
          cache_path = (
              self._parent_artifact.manifest.storage_policy.load_file(
                  self._parent_artifact, self
              )
          )
      return FilePathStr(
          str(
              filesystem.copy_or_overwrite_changed(
                  cache_path, dest_path
              )
          )
      )
  
file_path: wandb/wandb/sdk/artifacts/artifact_manifest_entry.py
imports: import json
  import os
  from pathlib import Path
  from typing import TYPE_CHECKING, Dict, Optional, Union
  from urllib.parse import urlparse
  from wandb.errors.term import termwarn
  from wandb.sdk.lib import filesystem
  from wandb.sdk.lib.hashutil import B64MD5, ETag, b64_to_hex_id, hex_to_b64_id, md5_file_b64
  from wandb.sdk.lib.paths import FilePathStr, LogicalPath, StrPath, URIStr
label_desc: Use image node_id 6 for calling the ArtifactManifestEntry obj's underlying member method code with example usage: obj.download(root) and returns: FilePathStr, FilePathStr