Make your Polars DataFrames generic types!
uv add git+https://github.com/baggiponte/polars-validator
from typing import TypedDict
import polars as pl
from polars_validator import validate_schema, DataFrame
class User(TypedDict):
id: int
name: str
email: str
@validate_schema(User)
def get_users_from_db() -> pl.DataFrame:
# Simulate database query
data = [
{"id": 1, "name": "Alice", "email": "[email protected]"},
{"id": 2, "name": "Bob", "email": "[email protected]"},
]
return pl.DataFrame(data)
users: DataFrame[User] = get_users_from_db()
It's faster with just.