class_docstr: Store and load checkpoints from Azure Blob Storage.
  
  Checkpoints are stored as a collection of Block Blobs,
  with each block blob corresponding to one checkpoint resource.
class_docstr_tok: ["Store","and","load","checkpoints","from","Azure","Blob","Storage",".","Checkpoints","are","stored","as","a","collection","of","Block","Blobs",",","with","each","block","blob","corresponding","to","one","checkpoint","resource","."]
code: def download(
      self,
      src: str,
      dst: Union[str, os.PathLike],
      selector: Optional[storage.Selector] = None,
  ) -> None:
      dst = os.fspath(dst)
      logger.info(f"Downloading {src} from Azure Blob Storage")
      found = False
      for blob in self.client.list_files(
          self.container, file_prefix=src
      ):
          found = True
          relname = os.path.relpath(blob, src)
          if blob.endswith("/"):
              relname = os.path.join(relname, "")
          if selector is not None and not selector(relname):
              continue
          _dst = os.path.join(dst, relname)
          dst_dir = os.path.dirname(_dst)
          os.makedirs(dst_dir, exist_ok=True)
  
          # Only create empty directory for keys that end with "/".
          if blob.endswith("/"):
              os.makedirs(_dst, exist_ok=True)
              continue
  
          # Use posixpath so that we always use forward slashes, even on Windows.
          container_blob = posixpath.join(self.container, blob)
          blob_dir, blob_base = posixpath.split(container_blob)
          self.client.get(blob_dir, blob_base, _dst)
  
      if not found:
          raise errors.CheckpointNotFound(
              f"Did not find checkpoint {src} in Azure Blob Storage"
          )
  
file_path: determined/harness/determined/common/storage/azure.py
imports: import logging
  import os
  import tempfile
  from typing import Dict, List, Optional, Union
  from determined import errors
  from determined.common import storage, util
  import posixpath
label_desc: Use image node_id 3 for calling the AzureStorageManager obj's underlying member method code with example usage: obj.download(src, dst, selector) without return types