code: def _get_tukey_cutoffs(Y: np.ndarray, lower: bool) -> float:
      """Compute winsorization cutoffs similarly to Tukey boxplots.
  
      See https://mathworld.wolfram.com/Box-and-WhiskerPlot.html for more details.
      """
      # TODO: replace interpolation->method once it becomes standard.
      q1 = np.percentile(Y, q=25, interpolation="lower")
      q3 = np.percentile(Y, q=75, interpolation="higher")
      iqr = q3 - q1
      return q1 - 1.5 * iqr if lower else q3 + 1.5 * iqr
  
imports: import warnings
  from logging import Logger
  from typing import Dict, List, Optional, Tuple, TYPE_CHECKING, Union
  import numpy
  from ax.core.objective import MultiObjective, ScalarizedObjective
  from ax.core.observation import Observation, ObservationData
  from ax.core.optimization_config import MultiObjectiveOptimizationConfig, OptimizationConfig
  from ax.core.outcome_constraint import ComparisonOp, ObjectiveThreshold, OutcomeConstraint, ScalarizedOutcomeConstraint
  from ax.core.search_space import SearchSpace
  from ax.exceptions.core import DataRequiredError, UnsupportedError, UserInputError
  from ax.modelbridge.transforms.base import Transform
  from ax.modelbridge.transforms.utils import derelativize_optimization_config_with_raw_status_quo, get_data
  from ax.models.types import TConfig, WinsorizationConfig
  from ax.utils.common.logger import get_logger
  from ax.utils.common.typeutils import checked_cast
label_desc: Use image node_id 6 for calling a global function with example usage: _get_tukey_cutoffs(Y, lower) and returns: unknown