code: def download_file(self, response, outfile, quiet=True, chunk_size=1048576):
          
  
          outpath = os.path.dirname(outfile)
          if not os.path.exists(outpath):
              os.makedirs(outpath)
          size = int(response.headers['Content-Length'])
          size_read = 0
          if not quiet:
              print('Downloading ' + os.path.basename(outfile) + ' to ' +
                    outpath)
          with tqdm(
                  total=size,
                  unit='B',
                  unit_scale=True,
                  unit_divisor=1024,
                  disable=quiet) as pbar:
              with open(outfile, 'wb') as out:
                  while True:
                      data = response.read(chunk_size)
                      if not data:
                          break
                      out.write(data)
                      size_read = min(size, size_read + chunk_size)
                      pbar.update(len(data))
              if not quiet:
                  print('\n', end='')
docs: download a file to an output file based on a chunk size
  
              Parameters
              ==========
              response: the response to download
              outfile: the output file to download to
              quiet: suppress verbose output (default is True)
              chunk_size: the size of the chunk to stream