code: def download_data(data_url, source_name):
      """Download Zip datafile from case.law
      Arguments:
          data_url {str} -- url path dataset
          source_name {str} -- name for dataset
      """
      # create data directory
      os.makedirs("data", exist_ok=True)
      # download data from caselaw
      zip_file_path = source_name + ".zip"
      logger.info(">> Downloading data file for " + source_name)
      urllib.request.urlretrieve(data_url, zip_file_path)
      logger.info(">> Downloaded data file " + zip_file_path)
  
      extract_dir = "temp" + source_name
      with zipfile.ZipFile(zip_file_path, "r") as zip_ref:
          zip_ref.extractall(extract_dir)
      data_file = os.path.join(
          extract_dir,
          os.listdir(extract_dir)[0],
          "data",
          "data.jsonl.xz",
      )
      final_file_path = os.path.join("data", source_name + "jsonl.xz")
      shutil.copyfile(data_file, final_file_path)
      logger.info(">> Extracted and moved jsonl file to data folder")
      shutil.rmtree(extract_dir)
      os.remove(zip_file_path)
      return final_file_path
  
file_path: neuralqa/neuralqa/utils/data_utils.py
imports: from elasticsearch import Elasticsearch
  import os
  import zipfile
  import shutil
  import urllib.request
  import logging
  import lzma
  import json
  import tarfile
  import hashlib
label_desc: Use image node_id 3 for calling a global function with example usage: download_data(data_url, source_name) and returns: final_file_path