class_docstr: Check for under annotated data segments.
code: def _get_box_boundaries(
      feature_data: pd.Series, segment: Tuple[float, float]
  ) -> Tuple[float, float]:
      lower = (
          segment[0]
          if np.isfinite(segment[0])
          else np.nanmin(feature_data)
      )
      upper = (
          segment[1]
          if np.isfinite(segment[1])
          else np.nanmax(feature_data)
      )
      return lower, upper
  
imports: from typing import Dict, List, Optional, Tuple, Union
  import numpy
  import pandas
  import plotly.graph_objects
  from deepchecks import ConditionCategory, ConditionResult
  from deepchecks.core import CheckResult
  from deepchecks.core.check_result import DisplayMap
  from deepchecks.core.errors import NotEnoughSamplesError
  from deepchecks.nlp import Context, SingleDatasetCheck
  from deepchecks.nlp.utils.text import break_to_lines_and_trim
  from deepchecks.nlp.utils.weak_segments import get_relevant_data_table
  from deepchecks.utils.abstracts.weak_segment_abstract import WeakSegmentAbstract
  from deepchecks.utils.metrics import is_label_none
  from deepchecks.utils.strings import format_percent
  from deepchecks.utils.typing import Hashable
label_desc: Use image node_id 3 for calling the UnderAnnotatedSegments obj's underlying member method code with example usage: obj._get_box_boundaries(feature_data, segment) and returns: lower,  upper