class_docstr: Special custom remote allowing to obtain files from archives
  
  Archives must be under annex'ed themselves.
code: def _annex_get_archive_by_key(self, akey):
      # TODO: make it more stringent?
      # Command could have fail to run if key was not present locally yet
      # Thus retrieve the key using annex
      # TODO: we need to report user somehow about this happening and
      # progress on the download
      from humanize import naturalsize
  
      from datalad.support.annexrepo import AnnexJsonProtocol
  
      akey_size = self.repo.get_size_from_key(akey)
      self.message(
          "To obtain some keys we need to fetch an archive "
          "of size %s"
          % (naturalsize(akey_size) if akey_size else "unknown"),
          type="info",
      )
  
      try:
          self.repo._call_annex(
              ["get", "--json", "--json-progress", "--key", akey],
              protocol=AnnexJsonProtocol,
          )
      except Exception:
          self.message(f"Failed to fetch archive with key {akey}")
          raise
  
imports: import logging
  import os
  import os.path
  import shutil
  from operator import itemgetter
  from pathlib import Path
  from urllib.parse import urlparse
  from annexremote import UnsupportedRequest
  from datalad.consts import ARCHIVES_SPECIAL_REMOTE
  from datalad.customremotes import RemoteError
  from datalad.customremotes.main import main
  from datalad.distribution.dataset import Dataset
  from datalad.support.annexrepo import AnnexRepo
  from datalad.support.archives import ArchivesCache
  from datalad.support.cache import DictCache
  from datalad.support.exceptions import CapturedException
  from datalad.support.locking import lock_if_check_fails
  from datalad.support.network import URL
  from datalad.utils import ensure_bytes, get_dataset_root, getpwd, unique, unlink
  from .base import AnnexCustomRemote
label_desc: Use image node_id 14 for calling the ArchiveAnnexCustomRemote obj's underlying member method code with example usage: obj._annex_get_archive_by_key(akey) without return types