def __init__()

in causalml/inference/tree/uplift.pyx [0:0]


    def __init__(self, control_name, max_features=None, max_depth=3, min_samples_leaf=100,
                 min_samples_treatment=10, n_reg=100, early_stopping_eval_diff_scale=1, evaluationFunction='KL',
                 normalization=True, honesty=False, estimation_sample_size=0.5, random_state=None):
        self.max_depth = max_depth
        self.min_samples_leaf = min_samples_leaf
        self.min_samples_treatment = min_samples_treatment
        self.n_reg = n_reg
        self.early_stopping_eval_diff_scale = early_stopping_eval_diff_scale
        self.max_features = max_features

        assert evaluationFunction in ['KL', 'ED', 'Chi', 'CTS', 'DDP', 'IT', 'CIT', 'IDDP'], \
            f"evaluationFunction should be either 'KL', 'ED', 'Chi', 'CTS', 'DDP', 'IT', 'CIT', or 'IDDP' but {evaluationFunction} is passed"

        if evaluationFunction == 'KL':
            self.evaluationFunction = self.evaluate_KL
            self.arr_eval_func = self.arr_evaluate_KL
        elif evaluationFunction == 'ED':
            self.evaluationFunction = self.evaluate_ED
            self.arr_eval_func = self.arr_evaluate_ED
        elif evaluationFunction == 'Chi':
            self.evaluationFunction = self.evaluate_Chi
            self.arr_eval_func = self.arr_evaluate_Chi     
        elif evaluationFunction == 'DDP':
            self.evaluationFunction = self.evaluate_DDP
            self.arr_eval_func = self.arr_evaluate_DDP
        elif evaluationFunction == 'IT':
            self.evaluationFunction = self.evaluate_IT
            self.arr_eval_func = self.arr_evaluate_IT
        elif evaluationFunction == 'CIT':
            self.evaluationFunction = self.evaluate_CIT
            self.arr_eval_func = self.arr_evaluate_CIT
        elif evaluationFunction == 'IDDP':
            self.evaluationFunction = self.evaluate_IDDP
            self.arr_eval_func = self.arr_evaluate_IDDP
        elif evaluationFunction == 'CTS':
            self.evaluationFunction = self.evaluate_CTS
            self.arr_eval_func = self.arr_evaluate_CTS
        self.fitted_uplift_tree = None

        assert control_name is not None and isinstance(control_name, str), \
            f"control_group should be string but {control_name} is passed"
        self.control_name = control_name
        self.classes_ = [self.control_name]
        self.n_class = 1
        self.normalization = normalization
        self.honesty = honesty
        self.estimation_sample_size = estimation_sample_size
        self.random_state = random_state
        if evaluationFunction == 'IDDP' and self.honesty is False:
            self.honesty = True