class_docstr: Generates trackers from training data.
class_docstr_tok: ["Generates","trackers","from","training","data","."]
docstr: Add unused end checkpoints
  if they were never encountered as start checkpoints.
docstr_tok: ["Add","unused","end","checkpoints","if","they","were","never","encountered","as","start","checkpoints","."]
code: def _add_unused_end_checkpoints(
      start_checkpoints: Set[Text],
      unused_checkpoints: Set[Text],
      used_checkpoints: Set[Text],
  ) -> Set[Text]:
      """Add unused end checkpoints
      if they were never encountered as start checkpoints.
      """
      return unused_checkpoints.union(
          {
              start_name
              for start_name in start_checkpoints
              if start_name not in used_checkpoints
          }
      )
  
imports: from collections import defaultdict, namedtuple, deque
  import copy
  import logging
  import random
  from contextlib import contextmanager
  from tqdm import tqdm
  from typing import Optional, List, Text, Set, Dict, Tuple, Deque, DefaultDict, Any, Iterable, Generator
  from rasa.shared.constants import DOCS_URL_STORIES
  from rasa.shared.core.constants import SHOULD_NOT_BE_SET
  from rasa.shared.core.domain import Domain, State
  from rasa.shared.core.events import ActionExecuted, UserUttered, ActionReverted, UserUtteranceReverted, Restarted, Event, SlotSet, ActiveLoop
  from rasa.shared.core.trackers import DialogueStateTracker, FrozenState
  from rasa.shared.core.slots import Slot
  from rasa.shared.core.training_data.structures import StoryGraph, STORY_START, StoryStep, RuleStep, GENERATED_CHECKPOINT_PREFIX
  from rasa.shared.utils.io import is_logging_disabled
  import rasa.shared.utils.io
label_desc: Use image node_id 10 for calling the TrainingDataGenerator obj's underlying member method code with example usage: obj._add_unused_end_checkpoints(start_checkpoints, unused_checkpoints, used_checkpoints) and returns: unused_checkpoints