docstr: Download files from Bintray in parallel. If file already exists, will
  overwrite if the checksum does not match what Bintray says it should be
  
  Parameters
  ----------
  files : List[Dict]
      File listing from Bintray
  dest : str, default None
      Defaults to current working directory
  num_parallel : int, default 8
      Number of files to download in parallel. If set to None, uses
      default
docstr_tok: ["Download","files","from","Bintray","in","parallel",".","If","file","already","exists",",","will","overwrite","if","the","checksum","does","not","match","what","Bintray","says","it","should","be","Parameters","--","--","--","--","--","files",":","List","[","Dict","]","File","listing","from","Bintray","dest",":","str",",","default","None","Defaults","to","current","working","directory","num_parallel",":","int",",","default","8","Number","of","files","to","download","in","parallel",".","If","set","to","None",",","uses","default"]
code: def download_files(
      self, files, dest=None, num_parallel=None, re_match=None
  ):
      """
      Download files from Bintray in parallel. If file already exists, will
      overwrite if the checksum does not match what Bintray says it should be
  
      Parameters
      ----------
      files : List[Dict]
          File listing from Bintray
      dest : str, default None
          Defaults to current working directory
      num_parallel : int, default 8
          Number of files to download in parallel. If set to None, uses
          default
      """
      if dest is None:
          dest = os.getcwd()
      if num_parallel is None:
          num_parallel = DEFAULT_PARALLEL_DOWNLOADS
  
      if re_match is not None:
          regex = re.compile(re_match)
          files = [x for x in files if regex.match(x)]
  
      if num_parallel == 1:
          for path in files:
              self._download_file(dest, path)
      else:
          parallel_map_terminate_early(
              functools.partial(self._download_file, dest),
              files,
              num_parallel,
          )
  
imports: import argparse
  import concurrent.futures
  import functools
  import json
  import os
  import random
  import re
  import subprocess
  import time
  import urllib.request
label_desc: Use image node_id 2 for calling the Downloader obj's underlying member method code with example usage: obj.download_files(files, dest, num_parallel, re_match) without return types