class_docstr: Return the PPS (Predictive Power Score) of all features in relation to the label.
  
  The PPS represents the ability of a feature to single-handedly predict another feature or label.
  A high PPS (close to 1) can mean that this feature's success in predicting the label is actually due to data
  leakage - meaning that the feature holds information that is based on the label to begin with.
  
  Uses the ppscore package - for more info, see https://github.com/8080labs/ppscore
  
  Parameters
  ----------
  ppscore_params : dict , default: None
      dictionary of additional parameters for the ppscore.predictors function
  n_top_features : int , default: 5
      Number of features to show, sorted by the magnitude of difference in PPS
  n_samples : int , default: 100_000
      number of samples to use for this check.
  random_state : int , default: None
      Random state for the ppscore.predictors function
docstr: Add condition that will check that pps of the specified feature(s) is less than the threshold.
  
  Parameters
  ----------
  threshold : float , default: 0.8
      pps upper bound
  Returns
  -------
  FLC
docstr_tok: ["Add","condition","that","will","check","that","pps","of","the","specified","feature","(","s",")","is","less","than","the","threshold",".","Parameters","--","--","--","--","--","threshold",":","float",",","default",":","0.8","pps","upper","bound","Returns","--","--","--","-","FLC"]
code: def add_condition_feature_pps_less_than(
      self: FLC, threshold: float = 0.8
  ) -> FLC:
      """
      Add condition that will check that pps of the specified feature(s) is less than the threshold.
  
      Parameters
      ----------
      threshold : float , default: 0.8
          pps upper bound
      Returns
      -------
      FLC
      """
  
      def condition(value: t.Dict[Hashable, float]) -> ConditionResult:
          failed_features = {
              feature_name: format_number(pps_value)
              for feature_name, pps_value in value.items()
              if pps_value >= threshold
          }
  
          if failed_features:
              message = (
                  f"Found {len(failed_features)} out of {len(value)} features with PPS above threshold: "
                  f"{failed_features}"
              )
              return ConditionResult(ConditionCategory.FAIL, message)
          else:
              return ConditionResult(
                  ConditionCategory.PASS,
                  get_condition_passed_message(value),
              )
  
      return self.add_condition(
          f"Features' Predictive Power Score is less than {format_number(threshold)}",
          condition,
      )
  
file_path: deepchecks/deepchecks/tabular/checks/data_integrity/feature_label_correlation.py
imports: import typing
  import deepchecks.ppscore
  from deepchecks.core import CheckResult, ConditionCategory, ConditionResult
  from deepchecks.core.check_utils.feature_label_correlation_utils import get_pps_figure, pd_series_to_trace
  from deepchecks.tabular import Context, SingleDatasetCheck
  from deepchecks.tabular.utils.messages import get_condition_passed_message
  from deepchecks.tabular.utils.task_type import TaskType
  from deepchecks.utils.strings import format_number
  from deepchecks.utils.typing import Hashable
label_desc: Use image node_id 3 for calling the FeatureLabelCorrelation obj's underlying member method code with example usage: obj.add_condition_feature_pps_less_than(threshold) and returns: self, ConditionResult, ConditionResult