code: def add_condition(
      self, split_condition: SplitCondition
  ) -> "CombinedVariableCondition":
      if self.splitting_variable != split_condition.splitting_variable:
          return self
      if (
          split_condition.operator == gt
          and split_condition.splitting_value > self.min_value
      ):
          return CombinedVariableCondition(
              self.splitting_variable,
              split_condition.splitting_value,
              self.max_value,
          )
      elif (
          split_condition.operator == le
          and split_condition.splitting_value < self.max_value
      ):
          return CombinedVariableCondition(
              self.splitting_variable,
              self.min_value,
              split_condition.splitting_value,
          )
      else:
          return self
  
file_path: imodels/imodels/experimental/bartpy/splitcondition.py
imports: from operator import le, gt
  from typing import Callable, List, Optional, Union
  import numpy
label_desc: Use image node_id 2 for calling the CombinedVariableCondition obj's underlying member method code with example usage: obj.add_condition(split_condition) and returns: self, CombinedVariableCondition, CombinedVariableCondition, self