class_docstr: This teacher will enumerate **every single** combination of episodes with utterance
  lengths.
  
  Finds the minimum number of utterances through the entire data, and goes from there.
class_docstr_tok: ["This","teacher","will","enumerate","*","*","every","single","*","*","combination","of","episodes","with","utterance","lengths",".","Finds","the","minimum","number","of","utterances","through","the","entire","data",",","and","goes","from","there","."]
code: def _setup_data(self, path):
      super()._setup_data(path)
      max_num_utts = min(
          len(ep[0]["text"].split(self.delimiter))
          for ep in self.episodes
      )
      episodes = copy.deepcopy(self.episodes)
      for i in range(0, max_num_utts - 1):
          self.num_utterances = i
          super()._setup_data(path)
          episodes += copy.deepcopy(self.episodes)
      self.episodes = episodes
      self.num_eps = len(self.episodes)
      self.num_exs = len(self.episodes)
  
imports: from abc import ABC
  from collections import deque
  import re
  from typing import Optional
  from parlai.core.build_data import modelzoo_path
  from parlai.core.message import Message
  from parlai.core.metrics import AverageMetric
  from parlai.core.opt import Opt
  from parlai.core.params import ParlaiParser
  from parlai.tasks.light_dialog.agents import SimpleMultiTeacher
  from parlai.utils.data import DatatypeHelper
  import parlai.utils.logging
  import copy
  import os
  import random
  import torch
  import torch.nn
  import torch.nn.functional
  from typing import List, Dict, Tuple
  from projects.light_whoami.task.utils import DEFAULT_DELIM, CONTEXT_KEYS, extract_characters, WHO_AM_I, WHO_ARE_YOU, SELF, PARTNER, WHO_IS_THIS, maybe_annotate
  import projects.light_whoami.task.mutators
label_desc: Use image node_id 1 for calling the AllUtteranceLengthsTeacher obj's underlying member method code with example usage: obj._setup_data(path) without return types