class_docstr: Stop the training once a threshold in episodic reward
  has been reached (i.e. when the model is good enough).
  
  It must be used with the `EvalCallback`.
  
  :param reward_threshold: (float)  Minimum expected reward per episode
      to stop training.
  :param verbose: (int)
class_docstr_tok: ["Stop","the","training","once","a","threshold","in","episodic","reward","has","been","reached","(","i.e",".","when","the","model","is","good","enough",")",".","It","must","be","used","with","the","`","EvalCallback","`",".",":","param","reward_threshold",":","(","float",")","Minimum","expected","reward","per","episode","to","stop","training",".",":","param","verbose",":","(","int",")"]
code: def __init__(self, reward_threshold: float, verbose: int = 0):
      super(StopTrainingOnRewardThreshold, self).__init__(
          verbose=verbose
      )
      self.reward_threshold = reward_threshold
  
imports: import os
  from abc import ABC
  import warnings
  import typing
  from typing import Union, List, Dict, Any, Optional
  import gym
  import numpy
  from stable_baselines.common.vec_env import VecEnv, sync_envs_normalization, DummyVecEnv
  from stable_baselines.common.evaluation import evaluate_policy
  from stable_baselines import logger
label_desc: Use image node_id 1 to create a new StopTrainingOnRewardThreshold object from inherited base classes: BaseCallback with example: obj = StopTrainingOnRewardThreshold(reward_threshold, verbose)