From 378f7c19ce0c3d06b9195bc578cbb5ee5fb98166 Mon Sep 17 00:00:00 2001 From: gabriel Date: Fri, 3 Apr 2026 11:56:30 +0200 Subject: [PATCH] fix: Ignore columns in --- dataframely/schema.py | 5 ++++- tests/column_types/test_any.py | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/dataframely/schema.py b/dataframely/schema.py index b64f0616..8cf787c0 100644 --- a/dataframely/schema.py +++ b/dataframely/schema.py @@ -38,6 +38,7 @@ ParquetStorageBackend, ) from ._typing import DataFrame, LazyFrame, Validation +from .columns import Any as AnyColumn from .columns import Column, column_from_dict from .config import Config from .exc import ( @@ -814,7 +815,9 @@ def cast( further down the line might fail because of the cast and/or missing columns. """ lf = df.lazy().select( - pl.col(name).cast(col.dtype) for name, col in cls.columns().items() + # Skip casting for Any columns since they accept any type + pl.col(name) if isinstance(col, AnyColumn) else pl.col(name).cast(col.dtype) + for name, col in cls.columns().items() ) if isinstance(df, pl.DataFrame): return lf.collect() # type: ignore diff --git a/tests/column_types/test_any.py b/tests/column_types/test_any.py index 4668df89..5c001802 100644 --- a/tests/column_types/test_any.py +++ b/tests/column_types/test_any.py @@ -20,3 +20,9 @@ class AnySchema(dy.Schema): def test_any_dtype_passes(data: dict[str, Any]) -> None: df = pl.DataFrame(data) assert AnySchema.is_valid(df) + + +def test_any_cast() -> None: + df = pl.DataFrame({"a": 0}) + result = AnySchema.cast(df) + assert result["a"].dtype == pl.Int64