Source code for preprocess.preprocess_utils

from __future__ import annotations

from dataset.dataset_object import DatasetObject


def dataset_has_attr(dataset: DatasetObject, flag: str) -> bool:
    try:
        dataset.attr(flag)
    except AttributeError:
        return False
    else:
        return True


def ensure_flag_absent(dataset: DatasetObject, flag: str) -> None:
    if dataset_has_attr(dataset, flag):
        raise ValueError(f"Dataset already contains preprocess flag: {flag}")


[docs] def resolve_feature_metadata( dataset: DatasetObject, ) -> tuple[dict[str, str], dict[str, bool], dict[str, str]]: if dataset_has_attr(dataset, "encoded_feature_type"): feature_type = dataset.attr("encoded_feature_type") feature_mutability = dataset.attr("encoded_feature_mutability") feature_actionability = dataset.attr("encoded_feature_actionability") else: feature_type = dataset.attr("raw_feature_type") feature_mutability = dataset.attr("raw_feature_mutability") feature_actionability = dataset.attr("raw_feature_actionability") return feature_type, feature_mutability, feature_actionability