docs: def download_from_github(fname, path):
      """
      Download database from GitHub
  
      :param fname: file name with extension ('.zip') of the target item
      :type fname: str
      :param path: path to save unzipped files
      :type path: str
  
      :return: database folder
      :rtype: folder
      """
      base_url = 'https://github.com/ornlneutronimaging/ImagingReso/blob/master/ImagingReso/reference_data/'
      # Add GitHub junk to the file name for downloading.
      f = fname + '?raw=true'
      url = base_url + f
      block_size = 16384
      req = urlopen(url)
  
      # Get file size from header
      if sys.version_info[0] < 3:
          file_size = int(req.info().getheaders('Content-Length')[0])
      else:
          file_size = req.length
      # downloaded = 0
  
      # Check if file already downloaded
      if os.path.exists(fname):
          if os.path.getsize(fname) == file_size:
              print("Skipping downloading '{}'".format(fname))
          else:
              overwrite = input("File size changed, overwrite '{}'? ([y]/n) ".format(fname))
              if overwrite.lower().startswith('n'):
                  print("Local file '{}' kept without overwriting.".format(fname))
  
      # Copy file to disk
      print("Downloading '{}'... ".format(fname))
      with open(fname, 'wb') as fh:
          while True:
              chunk = req.read(block_size)
              if not chunk:
                  break
              fh.write(chunk)
              # downloaded += len(chunk)
          print('')
      print('Download completed.')
      print("Unzipping '{}'... ".format(fname))
  
      _database_zip = zipfile.ZipFile(fname)
      _database_zip.extractall(path=path)
      print("'{}' has been unzipped and database '{}' is ready to use.".format(fname, fname.replace('.zip', '')))
  
      os.remove(fname)
      print("'{}' has been deleted".format(fname))