code: def _all_split_datafiles(opt: Opt) -> List[str]:
      datafiles = []
      split_type = SplitType(opt.get("cmu_dog_split_type"))
      if split_type in {SplitType.SEEN, SplitType.UNSEEN}:
          # For seen/unseen split, the full set of dialogs is split
          # across train, valid, test seen, and test unseen
          for split in ["train", "valid", "test"]:
              datafiles.append(_datafile(split, SplitType.SEEN))
          datafiles.append(_datafile("test", SplitType.UNSEEN))
      else:
          for split in ["train", "valid", "test"]:
              datafiles.append(_datafile(split, split_type))
      return datafiles
  
imports: import copy
  import json
  import os
  from enum import Enum
  from typing import List, Optional, Tuple
  from parlai.core.message import Message
  from parlai.core.metrics import F1Metric
  from parlai.core.mutators import EpisodeMutator, MessageMutator, register_mutator
  from parlai.core.opt import Opt
  from parlai.core.params import ParlaiParser
  from parlai.core.teachers import DialogTeacher
  from parlai.tasks.cmu_dog.build import build
  from parlai.tasks.wizard_of_wikipedia.agents import RareWordF1Calculator, TOKEN_KNOWLEDGE, TOKEN_END_KNOWLEDGE
  from parlai.utils.data import DatatypeHelper
  from parlai.utils.io import PathManager
  from parlai.utils.logging import logger
  from parlai.utils.typing import TShared
label_desc: Use image node_id 3 for calling a global function with example usage: _all_split_datafiles(opt) and returns: datafiles