class_docstr: Standardize Y, separately for each metric and for each value of a
  ChoiceParameter.
  
  The name of the parameter by which to stratify the standardization can be
  specified in config["parameter_name"]. If not specified, will use a task
  parameter if search space contains exactly 1 task parameter, and will raise
  an exception otherwise.
  
  The stratification parameter must be fixed during generation if there are
  outcome constraints, in order to apply the standardization to the
  constraints.
  
  Transform is done in-place.
class_docstr_tok: ["Standardize","Y",",","separately","for","each","metric","and","for","each","value","of","a","ChoiceParameter",".","The","name","of","the","parameter","by","which","to","stratify","the","standardization","can","be","specified","in","config","[","``","parameter_name","''","]",".","If","not","specified",",","will","use","a","task","parameter","if","search","space","contains","exactly","1","task","parameter",",","and","will","raise","an","exception","otherwise",".","The","stratification","parameter","must","be","fixed","during","generation","if","there","are","outcome","constraints",",","in","order","to","apply","the","standardization","to","the","constraints",".","Transform","is","done","in-place","."]
code: def untransform_outcome_constraints(
      self,
      outcome_constraints: List[OutcomeConstraint],
      fixed_features: Optional[ObservationFeatures] = None,
  ) -> List[OutcomeConstraint]:
      if (
          fixed_features is None
          or self.p_name not in fixed_features.parameters
      ):
          raise ValueError(
              f"StratifiedStandardizeY requires {self.p_name} to be fixed here"
          )
      v = fixed_features.parameters[self.p_name]
      for c in outcome_constraints:
          if c.relative:
              raise ValueError(
                  "StratifiedStandardizeY does not support relative constraints"
              )
          c.bound = float(
              c.bound * self.Ystd[(c.metric.name, v)]
              + self.Ymean[(c.metric.name, v)]
          )
      return outcome_constraints
  
imports: from collections import defaultdict
  from logging import Logger
  from typing import DefaultDict, List, Optional, Tuple, TYPE_CHECKING
  import numpy
  from ax.core.observation import Observation, ObservationFeatures, separate_observations
  from ax.core.optimization_config import OptimizationConfig
  from ax.core.outcome_constraint import OutcomeConstraint
  from ax.core.parameter import ChoiceParameter
  from ax.core.search_space import SearchSpace
  from ax.core.types import TParamValue
  from ax.modelbridge.transforms.base import Transform
  from ax.modelbridge.transforms.standardize_y import compute_standardization_parameters
  from ax.models.types import TConfig
  from ax.utils.common.logger import get_logger
label_desc: Use image node_id 5 for calling the StratifiedStandardizeY obj's underlying member method code with example usage: obj.untransform_outcome_constraints(outcome_constraints, fixed_features) and returns: outcome_constraints