class_docstr: Dataset used to parallelize the transformation of the dataset via a DataLoader
class_docstr_tok: ["Dataset","used","to","parallelize","the","transformation","of","the","dataset","via","a","DataLoader"]
code: def _download_missing_files(self, download: bool):
      for file, url in self._FILES.values():
          if not os.path.exists(os.path.join(self.input_path, file)):
              if download:
                  filename = os.path.basename(url)
                  download_url(
                      url=url, root=self.input_path, filename=filename
                  )
                  from_path = os.path.join(self.input_path, filename)
                  to_path = from_path.replace(".gz", "")
                  with gzip.open(from_path, "rb") as rfh, open(
                      to_path, "wb"
                  ) as wfh:
                      wfh.write(rfh.read())
              else:
                  raise ValueError(
                      f"Missing file {file} in {self.input_path}"
                  )
  
file_path: vissl/extra_scripts/datasets/create_patch_camelyon_data_files.py
imports: import argparse
  import gzip
  import os
  from collections import OrderedDict
  from typing import NamedTuple
  from PIL import Image
  from torch.utils.data import DataLoader
  from tqdm import tqdm
  from vissl.utils.download import download_url
label_desc: Use image node_id 2 for calling the PatchCamelyon obj's underlying member method code with example usage: obj._download_missing_files(download) without return types