code: def create_zipfile(
      zip_filepath, splits_with_ids, suffixes, maindir=None
  ):
      """Generates a zipfile with a cityscapes-like file structure and random pngs.
  
      Args:
        zip_filepath (str): filepath to the zip archive that will be created
        splits_with_ids (Dict[str, List[str]]): data-splits like 'train' or 'val'
          that map to a list of image ids
        suffixes (List[str]): suffix per modality that should be created e.g.
          'leftImg8bit'
        maindir (str): name of the root directory of the zipfile, defaults to the
          name of the zipfile
      """
      with zipfile.ZipFile(zip_filepath, "w") as z:
          for split, ids in splits_with_ids.items():
              if maindir is None:
                  maindir = os.path.basename(zip_filepath).strip(".zip")
              split = os.path.join(maindir, split)
              for img_id in ids:
                  city = CITY_IN_ID_RE.match(img_id).group(1)
                  for suffix in suffixes:
                      if "Img" in suffix:
                          img = get_random_png(
                              height=1024, width=2048, channels=3
                          )
                      else:
                          img = get_random_png(
                              height=1024, width=2048, channels=1
                          )
                      z.write(
                          img,
                          os.path.join(
                              split,
                              city,
                              "{}_{}.png".format(img_id, suffix),
                          ),
                      )
  
imports: import os
  import random
  import re
  import zipfile
  from tensorflow_datasets.testing.fake_data_utils import get_random_png
label_desc: Use image node_id 2 for calling a global function with example usage: create_zipfile(zip_filepath, splits_with_ids, suffixes, maindir) without return types