code: def sharp_drop_outliers_range(
      data_percents: Sequence,
      sharp_drop_ratio: float = 0.9,
      max_outlier_percentage: float = 0.05,
  ) -> Union[float, None]:
      """Calculate outliers range on the data given using sharp drop.
  
      Parameters
      ----------
      data_percents : np.ndarray
          Counts of data to calculate outliers range for. The data is assumed to be sorted from the most common to the
          least common.
      sharp_drop_ratio : float , default 0.9
          The sharp drop threshold to use for the outliers detection.
      max_outlier_percentage : float , default 0.05
          The maximum percentage of data that can be considered as "outliers".
      """
      if not 1 - EPS < sum(data_percents) < 1 + EPS:
          raise DeepchecksValueError("Data percents must sum to 1")
  
      for i in range(len(data_percents) - 1):
          if sum(data_percents[: i + 1]) < 1 - max_outlier_percentage:
              continue
          if (
              1 - (data_percents[i + 1] / data_percents[i])
              >= sharp_drop_ratio
          ):
              return data_percents[i + 1]
      else:
          return None
  
imports: from typing import Sequence, Tuple, Union
  import numpy
  from deepchecks.core.errors import DeepchecksValueError
label_desc: Use image node_id 2 for calling a global function with example usage: sharp_drop_outliers_range(data_percents, sharp_drop_ratio, max_outlier_percentage) and returns: None, data_percents