diff --git a/dataframely/experimental/infer_schema.py b/dataframely/experimental/infer_schema.py index b6dd5bf..86b6078 100644 --- a/dataframely/experimental/infer_schema.py +++ b/dataframely/experimental/infer_schema.py @@ -9,6 +9,8 @@ import polars as pl +from dataframely._compat import _polars_version_tuple + _POLARS_DTYPE_MAP: dict[type[pl.DataType], str] = { pl.Boolean: "Bool", pl.Int8: "Int8", @@ -147,9 +149,16 @@ def _get_dtype_args(dtype: pl.DataType, series: pl.Series) -> list[str]: return [repr(dtype.categories.to_list())] if isinstance(dtype, pl.List): + if _polars_version_tuple >= (1, 36, 0): + return [_dtype_to_column_code(series.explode(empty_as_null=False))] return [_dtype_to_column_code(series.explode())] if isinstance(dtype, pl.Array): + if _polars_version_tuple >= (1, 36, 0): + return [ + _dtype_to_column_code(series.explode(empty_as_null=False)), + f"shape={dtype.size}", + ] return [_dtype_to_column_code(series.explode()), f"shape={dtype.size}"] if isinstance(dtype, pl.Struct):