class_docstr: A class used to abstract any file that has to be downloaded online.
  
  Any task that needs to download a file needs to have a list RESOURCES
  that have objects of this class as elements.
  
  This class provides the following functionality:
  
  - Download a file from a URL / Google Drive
  - Untar the file if zipped
  - Checksum for the downloaded file
  - Send HEAD request to validate URL or Google Drive link
  
  An object of this class needs to be created with:
  
  - url <string> : URL or Google Drive id to download from
  - file_name <string> : File name that the file should be named
  - hashcode <string> : SHA256 hashcode of the downloaded file
  - zipped <boolean> : False if the file is not compressed
  - from_google <boolean> : True if the file is from Google Drive
class_docstr_tok: ["A","class","used","to","abstract","any","file","that","has","to","be","downloaded","online",".","Any","task","that","needs","to","download","a","file","needs","to","have","a","list","RESOURCES","that","have","objects","of","this","class","as","elements",".","This","class","provides","the","following","functionality",":","-","Download","a","file","from","a","URL","\/","Google","Drive","-","Untar","the","file","if","zipped","-","Checksum","for","the","downloaded","file","-","Send","HEAD","request","to","validate","URL","or","Google","Drive","link","An","object","of","this","class","needs","to","be","created","with",":","-","url","<","string",">",":","URL","or","Google","Drive","id","to","download","from","-","file_name","<","string",">",":","File","name","that","the","file","should","be","named","-","hashcode","<","string",">",":","SHA256","hashcode","of","the","downloaded","file","-","zipped","<","boolean",">",":","False","if","the","file","is","not","compressed","-","from_google","<","boolean",">",":","True","if","the","file","is","from","Google","Drive"]
code: def __init__(
      self, url, file_name, hashcode, zipped=True, from_google=False
  ):
      self.url = url
      self.file_name = file_name
      self.hashcode = hashcode
      self.zipped = zipped
      self.from_google = from_google
  
imports: import importlib
  import json
  import time
  import datetime
  import os
  import requests
  import shutil
  import hashlib
  import tqdm
  import gzip
  import math
  import contextlib
  import parlai.utils.logging
  from parlai.utils.io import PathManager
label_desc: Use image node_id 1 to create a new DownloadableFile object  with example: obj = DownloadableFile(url, file_name, hashcode, zipped, from_google)