From 08be67ef1002f5832677d802046b5af7f1fb189c Mon Sep 17 00:00:00 2001 From: martonvago Date: Wed, 5 Mar 2025 10:05:17 +0000 Subject: [PATCH] feat: :sparkles: add mapping from Frictionless data types to Polars data types --- src/seedcase_sprout/core/map_data_types.py | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/seedcase_sprout/core/map_data_types.py diff --git a/src/seedcase_sprout/core/map_data_types.py b/src/seedcase_sprout/core/map_data_types.py new file mode 100644 index 00000000..594aa8b5 --- /dev/null +++ b/src/seedcase_sprout/core/map_data_types.py @@ -0,0 +1,24 @@ +import polars as pl + +from seedcase_sprout.core.properties import FieldType + +# Mapping from Frictionless data types to Polars data types. +# See https://sprout.seedcase-project.org/docs/design/interface/data-types +# for more information. +FRICTIONLESS_TO_POLARS: dict[FieldType, pl.DataType] = { + "string": pl.String, + "boolean": pl.Boolean, + "integer": pl.Int64, + "number": pl.Float64, + "year": pl.Int32, + "datetime": pl.Datetime, + "date": pl.Date, + "time": pl.Time, + "yearmonth": pl.Date, + "geopoint": pl.Array(pl.Float64, 2), + "duration": pl.String, + "object": pl.String, + "array": pl.String, + "geojson": pl.String, + "any": pl.String, +}