class_docstr: Container for the extracted archive
      
class_docstr_tok: ["Container","for","the","extracted","archive"]
code: def __init__(self, archive, path=None, persistent=False):
      self._archive = archive
      # TODO: bad location for extracted archive -- use tempfile
      if not path:
          path = tempfile.mktemp(
              **get_tempfile_kwargs(
                  prefix=_get_cached_filename(archive)
              )
          )
  
      if exists(path) and not persistent:
          raise RuntimeError(
              "Directory %s already exists whenever it should not "
              "persist" % path
          )
      self._persistent = persistent
      self._path = path
  
imports: import hashlib
  import logging
  import os
  import random
  import string
  import tempfile
  from datalad import cfg
  from datalad.config import anything2bool
  from datalad.consts import ARCHIVES_TEMP_DIR
  from datalad.support.external_versions import external_versions
  from datalad.support.locking import lock_if_check_fails
  from datalad.support.path import abspath, exists, isabs, isdir
  from datalad.support.path import join
  from datalad.support.path import normpath, pardir, relpath
  from datalad.support.path import sep
  from datalad.utils import Path, any_re_search, ensure_bytes, ensure_unicode, get_tempfile_kwargs, on_windows, rmtemp, rmtree, unlink
label_desc: Use image node_id 1 to create a new ExtractedArchive object from inherited base classes: object with example: obj = ExtractedArchive(archive, path, persistent)