class_docstr: Internal class for grouping trials of same parameters.
  
  This is used when repeating trials for reducing training variance.
  
  Args:
      primary_trial_id: Trial ID of the "primary trial".
          This trial is the one that the Searcher is aware of.
      config: Suggested configuration shared across all trials
          in the trial group.
      max_trials: Max number of trials to execute within this group.
class_docstr_tok: ["Internal","class","for","grouping","trials","of","same","parameters",".","This","is","used","when","repeating","trials","for","reducing","training","variance",".","Args",":","primary_trial_id",":","Trial","ID","of","the","``","primary","trial","''",".","This","trial","is","the","one","that","the","Searcher","is","aware","of",".","config",":","Suggested","configuration","shared","across","all","trials","in","the","trial","group",".","max_trials",":","Max","number","of","trials","to","execute","within","this","group","."]
code: def add(self, trial_id: str):
      assert len(self._trials) < self.max_trials
      self._trials.setdefault(trial_id, None)
  
imports: import copy
  import logging
  from typing import Dict, List, Optional
  import numpy
  from ray.tune.search import Searcher
  from ray.tune.search.util import _set_search_properties_backwards_compatible
  from ray.util import PublicAPI
label_desc: Use image node_id 2 for calling the _TrialGroup obj's underlying member method code with example usage: obj.add(trial_id) without return types