Skip to content

_build_pandas_schema_snapshot

Internal helper
This page documents an internal implementation helper, not a primary public API.
Source code in src/fabricops_kit/drift.py
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
def _build_pandas_schema_snapshot(df, dataset_name: str, table_name: str) -> dict:
    columns = []
    for index, column_name in enumerate(df.columns):
        data_type = str(df[column_name].dtype)
        nullable = bool(df[column_name].isna().any())
        ordinal_position = int(index)
        columns.append(
            {
                "column_name": str(column_name),
                "ordinal_position": ordinal_position,
                "data_type": data_type,
                "nullable": nullable,
                "column_hash": _column_hash(str(column_name), ordinal_position, data_type, nullable),
            }
        )

    return {
        "dataset_name": str(dataset_name),
        "table_name": str(table_name),
        "engine": "pandas",
        "generated_at": datetime.now(timezone.utc).isoformat(),
        "columns": columns,
    }