code: def extractall(file_path, destination, ext):
      """Extracts an archive file.
  
      This function extracts an archive file to a destination.
  
      Args:
          file_path (string): The path of a file to be extracted.
          destination (string): A directory path. The archive file
              will be extracted under this directory.
          ext (string): An extension suffix of the archive file.
              This function supports :obj:`'.zip'`, :obj:`'.tar'`,
              :obj:`'.gz'` and :obj:`'.tgz'`.
  
      """
  
      if ext == ".zip":
          with zipfile.ZipFile(file_path, "r") as z:
              z.extractall(destination)
      elif ext == ".tar":
          with tarfile.TarFile(file_path, "r") as t:
              t.extractall(destination)
      elif ext == ".gz" or ext == ".tgz":
          with tarfile.open(file_path, "r:gz") as t:
              t.extractall(destination)
  
file_path: chainercv/chainercv/utils/download.py
imports: from __future__ import division
  from __future__ import print_function
  from distutils.util import strtobool
  import hashlib
  import os
  import shutil
  import tarfile
  import tempfile
  import zipfile
  import filelock
  from six.moves.urllib import request
  import sys
  import time
  from chainer.dataset.download import get_dataset_directory
  from chainer.dataset.download import get_dataset_root
label_desc: Use image node_id 4 for calling a global function with example usage: extractall(file_path, destination, ext) without return types