def read_kfold_config(split: dict):
    """ KFold values reader

    This function ensures that the parameters of the KFold splitting method are defined.

    :param dict split: A dictionary that contains the parameters about the KFold splitting method.

    :return:
            - n_fold - An integer that refers to the number of folds which will be used for cross-validation.
            -  shuffle - A boolean. If true, data will be shuffled before splitting it to multiple folds.
            - random_state - An integer which helps to reproduce the results.

    """

    try:
        n_fold = split["fold_nr"]  # number of folds
    except Exception as e:
        print(f"fold_nr is not provided: {e}")
        n_fold = 5

    try:
        shuffle = split["shuffle"]
    except Exception as e:
        print(f"shuffle is not provided: {e}")
        shuffle = True

    try:
        random_state = split["random_state"]
    except Exception as e:
        print(f"random_state is not provided: {e}")
        random_state = 1

    return n_fold, shuffle, random_state