code: def build(opt):
      # get path to data directory
      datapath = os.path.join(opt["datapath"], "multidogo")
      # define version if any
      version = "v1.1"
  
      # check if data had been previously downloaded
      if not build_data.built(datapath, version_string=version):
          print("[building data: " + datapath + "]")
  
          # make a clean directory if needed
          if build_data.built(datapath):
              # an older version exists, so remove these outdated files.
              build_data.remove_dir(datapath)
          build_data.make_dir(datapath)
  
          # Download the data.
          RESOURCE.download_file(datapath)
  
          # mark the data as built
          build_data.mark_done(datapath, version_string=version)
  
      # do preprocessing on the data to put it into FBDialogueData format. There's a lot so check to make sure it's okay
      for fold in ["train", "valid", "test"]:
          _preprocess(opt, datapath, fold, version)
  
imports: import parlai.core.build_data
  from parlai.core.build_data import DownloadableFile
  import csv
  from itertools import islice
  from pathlib import Path
  import os
  import json
  import re
  import tqdm
label_desc: Use image node_id 12 for calling a global function with example usage: build(opt) without return types