code: def _decompress(fname):
      """
      Decompress for zip and tar file
      """
  
      # For protecting decompressing interupted,
      # decompress to fpath_tmp directory firstly, if decompress
      # successed, move decompress files to fpath and delete
      # fpath_tmp and remove download compress file.
      fpath = osp.split(fname)[0]
      fpath_tmp = osp.join(fpath, "tmp")
      if osp.isdir(fpath_tmp):
          shutil.rmtree(fpath_tmp)
          os.makedirs(fpath_tmp)
  
      if fname.find("tar") >= 0:
          with tarfile.open(fname) as tf:
              tf.extractall(path=fpath_tmp)
      elif fname.find("zip") >= 0:
          with zipfile.ZipFile(fname) as zf:
              zf.extractall(path=fpath_tmp)
      elif fname.find(".txt") >= 0:
          return
      else:
          raise TypeError(
              "Unsupport compress file type {}".format(fname)
          )
  
      for f in os.listdir(fpath_tmp):
          src_dir = osp.join(fpath_tmp, f)
          dst_dir = osp.join(fpath, f)
          _move_and_merge_tree(src_dir, dst_dir)
  
      shutil.rmtree(fpath_tmp)
      os.remove(fname)
  
imports: import os, sys
  import os.path
  import hashlib
  import requests
  import shutil
  import tqdm
  import time
  import tarfile
  import zipfile
  from paddle.utils.download import _get_unique_endpoints
label_desc: Use image node_id 9 for calling a global function with example usage: _decompress(fname) without return types