Metadata-Version: 2.1
Name: pulire
Version: 0.0.4
Summary: A lightweight DataFrame validation library.
Author: Meteostat
Author-email: info@meteostat.net
Requires-Python: >=3.10,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: numpy (>=2.1.3,<3.0.0)
Requires-Dist: pandas (>=2.2.3,<3.0.0)
Requires-Dist: scipy (>=1.14.1,<2.0.0)
Description-Content-Type: text/markdown

# Pulire

A lightweight DataFrame validation library for [Pandas](https://pandas.pydata.org/).

## Auto Formatting

```sh
poetry run black .
```

## Schema

Pulire requires a `Schema` which describes all columns in a given `DataFrame`.

```py
from pulire import Schema, Column, validators, formatters

Schema([
    Column("temp", "Float64", [
        validators.minimum(-80),
        validators.maximum(65),
        formatters.decimals(1)
    ])
])
```

## Validate

Pulire automatically removes values which fail the validation. Let's use the `meteostat` library to get some data:

```py
from datetime import datetime
from meteostat import Hourly

df = Hourly("10637", datetime(2018, 1, 1), datetime(2018, 1, 1, 23, 59)).fetch()

print(df)
```

Now, we can get a valid copy of our Meteostat `DataFrame` by running our schema's `validate` method:

```py
df = myschema.validate(df)
```
