class_docstr: Simple class to descibe a condition which must be met for this GenerationNode to
  take an action such as generation, transition, etc.
  
  Args:
      transition_to: The name of the GenerationNode the GenerationStrategy should
          transition to when this criterion is met, if it exists.
      block_gen_if_met: A flag to prevent continued generation from the
          associated GenerationNode if this criterion is met but other criterion
          remain unmet. Ex: MinimumTrialsInStatus has not been met yet, but
          MaxTrials has been reached. If this flag is set to true on MaxTrials then
          we will raise an error, otherwise we will continue to generate trials
          until MinimumTrialsInStatus is met (thus overriding MaxTrials).
      block_transition_if_unmet: A flag to prevent the node from completing and
          being able to transition to another node. Ex: MaxGenerationParallelism
          defaults to setting this to Flase since we can complete and move on from
          this node without ever reaching its threshold.
class_docstr_tok: ["Simple","class","to","descibe","a","condition","which","must","be","met","for","this","GenerationNode","to","take","an","action","such","as","generation",",","transition",",","etc",".","Args",":","transition_to",":","The","name","of","the","GenerationNode","the","GenerationStrategy","should","transition","to","when","this","criterion","is","met",",","if","it","exists",".","block_gen_if_met",":","A","flag","to","prevent","continued","generation","from","the","associated","GenerationNode","if","this","criterion","is","met","but","other","criterion","remain","unmet",".","Ex",":","MinimumTrialsInStatus","has","not","been","met","yet",",","but","MaxTrials","has","been","reached",".","If","this","flag","is","set","to","true","on","MaxTrials","then","we","will","raise","an","error",",","otherwise","we","will","continue","to","generate","trials","until","MinimumTrialsInStatus","is","met","(","thus","overriding","MaxTrials",")",".","block_transition_if_unmet",":","A","flag","to","prevent","the","node","from","completing","and","being","able","to","transition","to","another","node",".","Ex",":","MaxGenerationParallelism","defaults","to","setting","this","to","Flase","since","we","can","complete","and","move","on","from","this","node","without","ever","reaching","its","threshold","."]
code: def __repr__(self) -> str:
      return f"{self.criterion_class}({serialize_init_args(obj=self)})"
  
imports: from abc import abstractmethod
  from logging import Logger
  from typing import List, Optional, Set
  from ax.core.base_trial import TrialStatus
  from ax.core.experiment import Experiment
  from ax.exceptions.generation_strategy import MaxParallelismReachedException
  from ax.modelbridge.generation_strategy import DataRequiredError
  from ax.utils.common.base import SortableBase
  from ax.utils.common.logger import get_logger
  from ax.utils.common.serialization import SerializationMixin, serialize_init_args
label_desc: Use image node_id 6 for calling the TransitionCriterion obj's underlying member method code with example usage: obj.__repr__() and returns: self, str, serialize_init_args, str