Hello! Your library looks good!
But I had some troubles with my code, and think it's because of library:
from typing import TypedDict
import polars as pl
from webtime_analytics.utils import assert_is_root
from polaroids import DataFrame, Field
from polaroids.types import int8, float32
class SiteStatistics(TypedDict):
created: pl.Datetime
id: str
secondsSpended: pl.Decimal
title: str
url: str
def main():
assert_is_root()
root_df = pl.read_parquet("./parquets/site_statistics.parquet").with_columns(
pl.col("created").str.to_datetime(time_zone="Europe/Kirov"),
pl.col("secondsSpended").cast(pl.String).cast(pl.Decimal(10, 2)),
)
root_df = root_df.pipe(DataFrame[SiteStatistics]).validate()
# root_df = root_df.with_columns(pl.col(""))
print(root_df)
wennerryle@fedora:~/Рабочий стол/webtime-analytics$ poetry run dev
Traceback (most recent call last):
File "<string>", line 1, in <module>
import sys; from importlib import import_module; sys.argv = ['/home/wennerryle/Рабочий стол/webtime-analytics/.venv/bin/dev']; sys.exit(import_module('webtime_analytics.main').main())
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/wennerryle/Рабочий стол/webtime-analytics/src/webtime_analytics/main.py", line 24, in main
root_df = root_df.pipe(DataFrame[SiteStatistics]).validate()
File "/home/wennerryle/Рабочий стол/webtime-analytics/.venv/lib/python3.13/site-packages/polaroids/dataframe.py", line 150, in validate
_utils.assert_schema_equal(self._schema, self.schema)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/wennerryle/Рабочий стол/webtime-analytics/.venv/lib/python3.13/site-packages/polaroids/_utils.py", line 45, in assert_schema_equal
raise ValidationError(message)
polaroids.exceptions.ValidationError: columns have different types:
created: Object != Datetime(time_unit='us', time_zone='Europe/Kirov')
secondsSpended: Object != Decimal(precision=10, scale=2)
wennerryle@fedora:~/Рабочий стол/webtime-analytics$
How can I solve this?
Hello! Your library looks good!
But I had some troubles with my code, and think it's because of library:
How can I solve this?