class_docstr: Implements a conditional property using the descriptor protocol based on the property decorator.
  
  The corresponding class in scikit-learn (`_AvailableIfDescriptor`) only supports callables.
  This class adopts the property decorator as described in the descriptor guide in the offical Python documentation.
  
  See also
  --------
  https://docs.python.org/3/howto/descriptor.html
      Descriptor HowTo Guide
  
  :class:`sklearn.utils.available_if._AvailableIfDescriptor`
      The original class in scikit-learn.
code: def __init__(self, check, fget, doc=None):
      self.check = check
      self.fget = fget
      if doc is None and fget is not None:
          doc = fget.__doc__
      self.__doc__ = doc
      self._name = ""
  
file_path: scikit-survival/sksurv/util.py
imports: import numpy
  import pandas
  from pandas.api.types import CategoricalDtype
  from sklearn.utils import check_array, check_consistent_length
label_desc: Use image node_id 1 to create a new _PropertyAvailableIfDescriptor object  with example: obj = _PropertyAvailableIfDescriptor(check, fget, doc)