code: def get_hyperparameter_search_space(
      feat_type: Optional[FEAT_TYPE_TYPE] = None,
      dataset_properties=None,
  ):
      cs = ConfigurationSpace()
      shrinkage = CategoricalHyperparameter(
          "shrinkage", ["None", "auto", "manual"], default_value="None"
      )
      shrinkage_factor = UniformFloatHyperparameter(
          "shrinkage_factor", 0.0, 1.0, 0.5
      )
      tol = UniformFloatHyperparameter(
          "tol", 1e-5, 1e-1, default_value=1e-4, log=True
      )
      cs.add_hyperparameters([shrinkage, shrinkage_factor, tol])
  
      cs.add_condition(
          EqualsCondition(shrinkage_factor, shrinkage, "manual")
      )
      return cs
  
file_path: auto-sklearn/autosklearn/pipeline/components/classification/lda.py
imports: from typing import Optional
  from ConfigSpace.conditions import EqualsCondition
  from ConfigSpace.configuration_space import ConfigurationSpace
  from ConfigSpace.hyperparameters import CategoricalHyperparameter, UniformFloatHyperparameter
  from autosklearn.askl_typing import FEAT_TYPE_TYPE
  from autosklearn.pipeline.components.base import AutoSklearnClassificationAlgorithm
  from autosklearn.pipeline.constants import DENSE, PREDICTIONS, UNSIGNED_DATA
  from autosklearn.pipeline.implementations.util import softmax
  from autosklearn.util.common import check_none
label_desc: Use image node_id 6 for calling the LDA obj's underlying member method code with example usage: obj.get_hyperparameter_search_space(feat_type, dataset_properties) and returns: cs