code: def get_thresholds(self) -> np.ndarray:
      if self.thresholds is not None:
          return self.thresholds
  
      thresholds = [self.__class__.NO_SPLIT] * len(self.tree_nodes)
      for index, node in self.tree_nodes.items():
          if hasattr(node, "condition"):
              node_condition = node.condition
              if hasattr(node_condition, "threshold"):
                  thresholds[index] = node.condition.threshold
              #     for conditional split
              # this threshold contains the right condition path
              if hasattr(node_condition, "mask"):
                  thresholds[index] = node.condition.mask
                  feature_split_name = node.condition.feature.name
                  if (
                      self.column_dataspec[
                          feature_split_name
                      ].categorical.offset_value_by_one_during_training
                      is True
                  ):
                      thresholds[index] = [
                          value - 1 for value in thresholds[index]
                      ]
  
      self.thresholds = np.array(thresholds, dtype=object)
      return self.thresholds
  
imports: from collections import defaultdict
  from typing import List, Mapping
  import numpy
  import tensorflow_decision_forests
  from tensorflow_decision_forests.component.py_tree.node import LeafNode
  from tensorflow_decision_forests.keras import RandomForestModel
  from tensorflow_decision_forests.tensorflow.core import Task
  from dtreeviz.models.shadow_decision_tree import ShadowDecTree, VisualisationNotYetSupportedError
label_desc: Use image node_id 8 for calling the ShadowTensorflowTree obj's underlying member method code with example usage: obj.get_thresholds() and returns: self, self