Skip to content

Commit 6712248

Browse files
author
Irina
committed
validation lab 6
1 parent bdcd082 commit 6712248

File tree

4 files changed

+35
-1
lines changed

4 files changed

+35
-1
lines changed

Homepage.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@ def fetch_supply_json(url: str) -> dict:
5959

6060
# Filter (2012–present)
6161
df = filter_since(df, date_col="week", start_date="2012-01-01")
62+
from tests.validation import eia_schema
63+
64+
df = eia_schema.validate(df)
65+
66+
weekly_total = sum_by_week(df, date_col="week", value_col="value")
6267
if df.empty:
6368
st.error("No data after filtering to 2012–present. Check parsing or EIA response.")
6469
st.stop()

requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ numpy
1515
requests
1616
altair==4.2.2
1717
pytest
18-
pytest-cov
18+
pytest-cov
19+
pandera

tests/test_validation.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import pandas as pd
2+
import pytest
3+
4+
from tests.validation import eia_schema
5+
6+
7+
def test_schema_rejects_negative_values():
8+
df = pd.DataFrame({
9+
"week": pd.to_datetime(["2012-01-06"]),
10+
"value": [-5]
11+
})
12+
13+
with pytest.raises(Exception):
14+
eia_schema.validate(df)

tests/validation.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import pandera as pa
2+
from pandera import Check, Column, DataFrameSchema
3+
4+
eia_schema = DataFrameSchema(
5+
{
6+
"week": Column(pa.DateTime),
7+
"value": Column(
8+
pa.Float,
9+
coerce=True,
10+
checks=Check.ge(0),
11+
nullable=False,
12+
),
13+
}
14+
)

0 commit comments

Comments
 (0)