code: def extract_archive(
      from_path: str,
      to_path: Optional[str] = None,
      overwrite: bool = False,
  ) -> List[str]:
      """Extract archive.
      Args:
          from_path (str): the path of the archive.
          to_path (str or None, optional): the root path of the extraced files (directory of from_path)
              (Default: ``None``)
          overwrite (bool, optional): overwrite existing files (Default: ``False``)
  
      Returns:
          list: List of paths to extracted files even if not overwritten.
      """
  
      if to_path is None:
          to_path = os.path.dirname(from_path)
  
      try:
          with tarfile.open(from_path, "r") as tar:
              logging.info("Opened tar file %s.", from_path)
              files = []
              for file_ in tar:  # type: Any
                  file_path = os.path.join(to_path, file_.name)
                  if file_.isfile():
                      files.append(file_path)
                      if os.path.exists(file_path):
                          logging.info(
                              "%s already extracted.", file_path
                          )
                          if not overwrite:
                              continue
                  tar.extract(file_, to_path)
              return files
      except tarfile.ReadError:
          pass
  
      try:
          with zipfile.ZipFile(from_path, "r") as zfile:
              logging.info("Opened zip file %s.", from_path)
              files = zfile.namelist()
              for file_ in files:
                  file_path = os.path.join(to_path, file_)
                  if os.path.exists(file_path):
                      logging.info("%s already extracted.", file_path)
                      if not overwrite:
                          continue
                  zfile.extract(file_, to_path)
          return files
      except zipfile.BadZipFile:
          pass
  
      raise NotImplementedError(
          " > [!] only supports tar.gz, tgz, and zip achives."
      )
  
file_path: TTS/TTS/utils/download.py
imports: import hashlib
  import logging
  import os
  import tarfile
  import urllib
  import urllib.request
  import zipfile
  from os.path import expanduser
  from typing import Any, Iterable, List, Optional
  from torch.utils.model_zoo import tqdm
label_desc: Use image node_id 4 for calling a global function with example usage: extract_archive(from_path, to_path, overwrite) and returns: files, files