NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1278 most downloaded on PyPI
A light-weight and flexible data validation and testing tool for statistical data objects.
Last release 1 months ago
01 Sep 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 58 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
8 years old
125 releases · first in 2018
docs: announce Pandera CLI and PyArrow support in banner by @cosmicbboy in #2456
T | None annotations by @cosmicbboy in #2458Full Changelog: v0.33.0...v0.33.1
One column per quarter.
fix(polars): avoid concat deprecation in lazy validation by @RedZapdos123 in #2411
1.20.0 by @fhoehle in #2412FieldType[T] typing contract by @Dev-iL in #2448Full Changelog: v0.32.1...v0.33.0
fix: isolate config context per execution context by @gaoflow in #2380
Full Changelog: v0.32.0...v0.32.1
fix(tests): drop deprecated axis=None from DataFrame.sum call ( #2309 ) by @terryzm1 in #2311
narwhals backendIn this release, we're adding support for a narwhals backend that supports the polars, ibis and pyspark-sql schema APIs. To enable it, install the narwhals extra with the support framework of your choice:
pip install 'pandera[narwhals,polars]' # Polars
pip install 'pandera[narwhals,ibis]' # Ibis
pip install 'pandera[narwhals,pyspark]' # PySpark SQL
Then enable with an environment variable:
export PANDERA_USE_NARWHALS_BACKEND=TrueOr configure programmatically:
import pandera.polars as pa
# import pandera.pyspark as pa # 👈 for pyspark schemas
# import pandera.ibis as pa # 👈 for ibis schemas
# CONFIG.use_narwhals_backend is read here — not at import time above
pa.config.set_config(use_narwhals_backend=True)
schema = pa.DataFrameSchema({"name": pa.Column(str)}) # narwhals backends registered
schema.validate(df)See the docs for more information.
coerce_dtype by @Dev-iL in #2317Time as a cross-engine semantic dtype by @deepyaman in #2323rename_columns to work as long as final columns are unique by @AchillesTurtle in #2373Full Changelog: v0.31.1...v0.32.0
Fix pandera[polars] import without pandas by @cosmicbboy in #2291
Full Changelog: v0.31.0...v0.31.1
Fix applymap deprecation warning in pandas parser backend by @RedZapdos123 in https://github.com/unionai-oss/pandera/pull/2281
This is the release for all of you geospatial and multidimensional array-handling folks out there.
xarray supportPandera now provides full support for xarray 🚀
Write a DatasetSchema with the object-based API
import numpy as np
import xarray as xr
import pandera.xarray as pa
schema = pa.DatasetSchema(
data_vars={
"temperature": pa.DataVar(dtype=np.float64, dims=("x", "y")),
"pressure": pa.DataVar(dtype=np.float64, dims=("x", "y")),
},
coords={"x": pa.Coordinate(dtype=np.float64)},
)
ds = xr.Dataset(
{
"temperature": (("x", "y"), np.random.rand(3, 4)),
"pressure": (("x", "y"), np.random.rand(3, 4)),
},
coords={"x": np.arange(3, dtype=np.float64)},
)
schema.validate(ds)
Or a DatasetModel with the class-based API:
from pandera.typing.xarray import Coordinate
class Surface(pa.DatasetModel):
temperature: np.float64 = pa.Field(dims=("x", "y"))
pressure: np.float64 = pa.Field(dims=("x", "y"))
x: Coordinate[np.float64]
Surface.validate(ds)
geopandas supportThis release also adds first-class GeoDataFrameSchema and GeoDataFrameModel APIs for geopandas: https://pandera.readthedocs.io/en/latest/geopandas.html
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.30.1...v0.31.0
This is the release for all of you geospatial and multidimensional array-handling folks out there.
xarray supportPandera now provides full support for xarray 🚀
Write a DatasetSchema with the object-based API
import numpy as np
import xarray as xr
import pandera.xarray as pa
schema = pa.DatasetSchema(
data_vars={
"temperature": pa.DataVar(dtype=np.float64, dims=("x", "y")),
"pressure": pa.DataVar(dtype=np.float64, dims=("x", "y")),
},
coords={"x": pa.Coordinate(dtype=np.float64)},
)
ds = xr.Dataset(
{
"temperature": (("x", "y"), np.random.rand(3, 4)),
"pressure": (("x", "y"), np.random.rand(3, 4)),
},
coords={"x": np.arange(3, dtype=np.float64)},
)
schema.validate(ds)Or a DatasetModel with the class-based API:
from pandera.typing.xarray import Coordinate
class Surface(pa.DatasetModel):
temperature: np.float64 = pa.Field(dims=("x", "y"))
pressure: np.float64 = pa.Field(dims=("x", "y"))
x: Coordinate[np.float64]
Surface.validate(ds)geopandas supportThis release also adds first-class GeoDataFrameSchema and GeoDataFrameModel APIs for geopandas: https://pandera.readthedocs.io/en/latest/geopandas.html
Full Changelog: v0.30.1...v0.31.0
Bugfix/2213: handle schema errors correctly when strict and ordered are True by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2242
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.30.1...v0.31.0rc1
Full Changelog: v0.30.1...v0.31.0rc1
Refactor Pandera accessors to use schema registry for managing schemas by @cosmicbboy in #2241
Full Changelog: v0.30.0...v0.30.1
Pandera now supports Pandas >= 3!
Pandera now supports Pandas >= 3!
pre-commit with prek and fix existing violations by @Dev-iL in https://github.com/unionai-oss/pandera/pull/2225ordering parameter from polars Categorical by @Dev-iL in https://github.com/unionai-oss/pandera/pull/2226Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.29.0...v0.30.0
Pandera now supports Pandas >= 3!
pre-commit with prek and fix existing violations by @Dev-iL in #2225ordering parameter from polars Categorical by @Dev-iL in #2226Full Changelog: v0.29.0...v0.30.0
Pandera now supports collection types containing dataframes, shoutout to @garethellis0 with an amazing first contribution!
Pandera now supports collection types containing dataframes, shoutout to @garethellis0 with an amazing first contribution!
@pa.check_types
def process_tuple_and_return_dict(
dfs: tuple[DataFrame[OnlyZeroesSchema], DataFrame[OnlyOnesSchema]],
) -> dict[str, DataFrame[OnlyZeroesSchema]]:
return {
"foo": dfs[0],
"bar": dfs[0]
}
result = process_tuple_and_return_dict((
pd.DataFrame({"a": [0, 0]}),
pd.DataFrame({"a": [1, 1]}),
))
print(result)
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.28.1...v0.29.0
Pandera now supports collection types containing dataframes, shoutout to @garethellis0 with an amazing first contribution!
@pa.check_types
def process_tuple_and_return_dict(
dfs: tuple[DataFrame[OnlyZeroesSchema], DataFrame[OnlyOnesSchema]],
) -> dict[str, DataFrame[OnlyZeroesSchema]]:
return {
"foo": dfs[0],
"bar": dfs[0]
}
result = process_tuple_and_return_dict((
pd.DataFrame({"a": [0, 0]}),
pd.DataFrame({"a": [1, 1]}),
))
print(result)Full Changelog: v0.28.1...v0.29.0
fix bugs in Check interface and Field by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2203
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.28.0...v0.28.1
Full Changelog: v0.28.0...v0.28.1
Pandera now supports Pyspark 4 🚀
Pandera now supports Pyspark 4 🚀
get_annotations instead of direct __annotations__ access by @amerberg in https://github.com/unionai-oss/pandera/pull/2196Decimal data type in the Ibis engine by @deepyaman in https://github.com/unionai-oss/pandera/pull/2194Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.27.1...v0.28.0
Pandera now supports Pyspark 4 🚀
get_annotations instead of direct __annotations__ access by @amerberg in #2196Decimal data type in the Ibis engine by @deepyaman in #2194Full Changelog: v0.27.1...v0.28.0
enhancement #2122 by @Jarek-Rolski in https://github.com/unionai-oss/pandera/pull/2177
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.27.0...v0.27.1
Pin DuckDB<1.4.0 in dev env due to breaking change by @deepyaman in https://github.com/unionai-oss/pandera/pull/2140
Pandera now supports Python 3.14! We also dropped support for Python 3.9
scipy-stubs by @jorenham in https://github.com/unionai-oss/pandera/pull/2121SPARK_LOCAL_IP to 127.0.0.1 if not set. by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2123failure_cases in check_column_values_are_unique by @MikeEvansLarah in https://github.com/unionai-oss/pandera/pull/2120check_nullable checks for Ibis backend by @deepyaman in https://github.com/unionai-oss/pandera/pull/2149name argument to memtables by @deepyaman in https://github.com/unionai-oss/pandera/pull/2162drop_invalid_rows for the Ibis backend by @deepyaman in https://github.com/unionai-oss/pandera/pull/2151pyupgrade and isort by @deepyaman in https://github.com/unionai-oss/pandera/pull/2171Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.26.1...v0.27.0
Pin DuckDB<1.4.0 in dev env due to breaking change by @deepyaman in https://github.com/unionai-oss/pandera/pull/2140
scipy-stubs by @jorenham in https://github.com/unionai-oss/pandera/pull/2121SPARK_LOCAL_IP to 127.0.0.1 if not set. by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2123failure_cases in check_column_values_are_unique by @MikeEvansLarah in https://github.com/unionai-oss/pandera/pull/2120check_nullable checks for Ibis backend by @deepyaman in https://github.com/unionai-oss/pandera/pull/2149name argument to memtables by @deepyaman in https://github.com/unionai-oss/pandera/pull/2162drop_invalid_rows for the Ibis backend by @deepyaman in https://github.com/unionai-oss/pandera/pull/2151Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.26.1...v0.27.0b0
fix MultiIndex check regression by @amerberg in https://github.com/unionai-oss/pandera/pull/2116
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.26.0...v0.26.1
📣 Pandera now supports Python 3.13! Now go forth and use bare forward reference types to your hearts content 🤗
📣 Pandera now supports Python 3.13! Now go forth and use bare forward reference types to your hearts content 🤗
pyupgrade hook and target Python version by @deepyaman in https://github.com/unionai-oss/pandera/pull/2093Literal imports from typing_extensions by @deepyaman in https://github.com/unionai-oss/pandera/pull/2100.git-blame-ignore-revs to avoid bulk changes by @deepyaman in https://github.com/unionai-oss/pandera/pull/2101strict parser by @deepyaman in https://github.com/unionai-oss/pandera/pull/2096Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.25.0...v0.26.0
Pandera now supports Ibis 🦩! You can now validate data on all available ibis backends using the pandera.ibis module.
Pandera now supports Ibis 🦩! You can now validate data on all available ibis backends using the pandera.ibis module.
In-memory table example:
import ibis
import pandera.ibis as pa
class Schema(pa.DataFrameModel):
state: str
city: str
price: int = pa.Field(in_range={"min_value": 5, "max_value": 20})
t = ibis.memtable(
{
'state': ['FL','FL','FL','CA','CA','CA'],
'city': [
'Orlando',
'Miami',
'Tampa',
'San Francisco',
'Los Angeles',
'San Diego',
],
'price': [8, 12, 10, 16, 20, 18],
}
)
Schema.validate(t).execute()
Sqlite example:
con = ibis.sqlite.connect()
t = con.create_table(
"table",
schema=ibis.schema(dict(state="string", city="string", price="int64"))
)
con.insert(
"table",
obj=[
("FL", "Orlando", 8),
("FL", "Miami", 12),
("FL", "Tampa", 10),
("CA", "San Francisco", 16),
("CA", "Los Angeles", 20),
("CA", "San Diego", 18),
]
)
Schema.validate(t).execute()
This release unlocks in database validation in some of the most widely used data platforms, including PostGres, Snowflake, BigQuery, MySQL, and more ✨. It means that you can validate data at scale, on your database/data framework of your choice, before fetching it for downstream analysis/modeling work.
Naturally, this also means that you can develop your schemas locally on a duckdb or sqlite backend and then use the same schemas in production on a remote database like postgres.
Learn more about the integration here.
polars due to test failure in CI by @deepyaman in https://github.com/unionai-oss/pandera/pull/2011event_loop removed in pytest-asyncio 1.0 by @deepyaman in https://github.com/unionai-oss/pandera/pull/2014pre-commit on all files to fix linter issues by @deepyaman in https://github.com/unionai-oss/pandera/pull/2063regex option and add additional checks by @deepyaman in https://github.com/unionai-oss/pandera/pull/2061format_vectorized_error_message to properly format nested pyarrow failed cases by @AndrejIring in https://github.com/unionai-oss/pandera/pull/2036Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.24.0...v0.25.0
Add Polars pydantic integration with format support and native JSON schema generation by @halicki in https://github.com/unionai-oss/pandera/pull/1979
polars due to test failure in CI by @deepyaman in https://github.com/unionai-oss/pandera/pull/2011event_loop removed in pytest-asyncio 1.0 by @deepyaman in https://github.com/unionai-oss/pandera/pull/2014pre-commit on all files to fix linter issues by @deepyaman in https://github.com/unionai-oss/pandera/pull/2063regex option and add additional checks by @deepyaman in https://github.com/unionai-oss/pandera/pull/2061format_vectorized_error_message to properly format nested pyarrow failed cases by @AndrejIring in https://github.com/unionai-oss/pandera/pull/2036Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.24.0...v0.25.0rc0
Pandas dependency deprecation future warning, add pandera[pandas] extra by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1926
pandera.pandas to define schemas for pandas objectspandera==0.24.0 has dropped the dependency on pandas and numpy and has introduced a pandas extra. This will break any users who relied on pandas as a the transitive dependency of pandera to install pandas. To remediate this, do the following:
pandas explicitly or use the pandas extrapip install 'pandera[pandas]' # recommended
# or
pip install pandas pandera
pandera.pandasAll pandas-specific symbols that were exposed by the top-level pandera module are now defined in the pandera.pandas module.
# old import
import pandera as pa
# new import
import pandera.pandas as pa
Importing pandera as pa for defining pandas schemas will still be available but will raise a warning. This will raise an ImportError in 5 minor releases (0.29.0).
pandera[pandas] extra by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1926add_missing_columns by @ksolarski in https://github.com/unionai-oss/pandera/pull/1962update_index, update_indexes and rename_indexes by @kdheepak in https://github.com/unionai-oss/pandera/pull/1989polars_version docstring referenced modin not polars by @TobiasDummschat in https://github.com/unionai-oss/pandera/pull/1998Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.23.1...v0.24.0
Pandas dependency deprecation future warning, add pandera[pandas] extra by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1926
pandera.pandas to define schemas for pandas objectspandera==0.24.0 has dropped the dependency on pandas and numpy and has introduced a pandas extra. This will break any users who relied on pandas as a the transitive dependency of pandera to install pandas. To remediate this, do the following:
pandas explicitly or use the pandas extrapip install pandas pandera
# or
pip install 'pandera[pandas]'
pandera.pandasAll pandas-specific symbols that were exposed by the top-level pandera module are now defined in the pandera.pandas module.
# old import
import pandera as pa
# new import
import pandera.pandas as pa
pandera[pandas] extra by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1926add_missing_columns by @ksolarski in https://github.com/unionai-oss/pandera/pull/1962Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.23.1...v0.24.0
handle None dtype when constructing json schema from DataFrameModel by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1931
Special shoutout to the new contributors!
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.23.0...v0.23.1
Create empty dataframe from Pandas DataFrame Model by @mamo3gr in https://github.com/unionai-oss/pandera/pull/1880
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.22.1...v0.23.0
Create empty dataframe from Pandas DataFrame Model by @mamo3gr in https://github.com/unionai-oss/pandera/pull/1880
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.22.1...v0.23.0b2
Nothing published for this version
bugfix: check_input decorator handles functions with kwargs by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1888
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.22.0...v0.22.1
In this release, dependencies on multimethod and wrapt were removed and optimizations were made to speed up validation performance by up to 4x (depend
In this release, dependencies on multimethod and wrapt were removed and optimizations were made to speed up validation performance by up to 4x (depending on the validation rules. For simple cases speedup is ~4x see here).
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.21.1...v0.22.0
fix: remove Category inheritance from ArrowDictionary by @darenliang in https://github.com/unionai-oss/pandera/pull/1848
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.21.0...v0.21.1
This release optimizes the import and schema creation runtime so that importing pandera and creating a schema (without doing any validation) happens i
This release optimizes the import and schema creation runtime so that importing pandera and creating a schema (without doing any validation) happens in ~5 ms (before it would be >800ms). It also updates the docs to use docsearch for a better search experience.
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.20.4...v0.21.0
Bugfix/1732: Fix misleading error when columns are missing and lazy=True by @benlee1284 in https://github.com/unionai-oss/pandera/pull/1752
types-pkg_resources with types-setuptools by @deepyaman in https://github.com/unionai-oss/pandera/pull/1779DataFrameModel.to_json_schema() fails on DateTime column by @AlpAribal in https://github.com/unionai-oss/pandera/pull/1789Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.20.3...v0.20.4
handle deprecated methods/arguments in polars v1 by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1746
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.20.2...v0.20.3
feat: add remaining pyarrow types by @aaravind100 in https://github.com/unionai-oss/pandera/pull/1720
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.20.1...v0.20.2
fix: raising type error when pyarrow is not installed by @aaravind100 in https://github.com/unionai-oss/pandera/pull/1717
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.20.0...v0.20.1
pandera.SchemaModel is now deprecated, use pandera.DataFrameModel instead.
pandera.SchemaModel is now deprecated, use pandera.DataFrameModel instead.pandas-stubs Link in Documentation by @bustosalex1 in https://github.com/unionai-oss/pandera/pull/1648reason_code for pyspark backend by @melvinkokxw in https://github.com/unionai-oss/pandera/pull/1646polars=1.0.0 by @MariusMerkleQC in https://github.com/unionai-oss/pandera/pull/1706ibis-dev; stop for polars-dev by @deepyaman in https://github.com/unionai-oss/pandera/pull/1713Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.19.2...v0.20.0
bugfix: timezone-agnostic datetime in polars works in DataFrameModel by @cosmicBboy #1638
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.19.2...v0.19.3
bugfix: nullable check float dtype handles nan and null by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1627
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.19.1...v0.19.2
Bugfix/1616: Polars data container validation by @cstabnick in https://github.com/unionai-oss/pandera/pull/1623
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.19.0...v0.19.1
📣 Pandera now supports validation of polars.DataFrame and polars.LazyFrame 🐻❄️!
📣 Pandera now supports validation of polars.DataFrame and polars.LazyFrame 🐻❄️!
You can now do this:
import pandera.polars as pa
import polars as pl
class Schema(pa.DataFrameModel):
state: str
city: str
price: int = pa.Field(in_range={"min_value": 5, "max_value": 20})
lf = pl.LazyFrame(
{
'state': ['FL','FL','FL','CA','CA','CA'],
'city': [
'Orlando',
'Miami',
'Tampa',
'San Francisco',
'Los Angeles',
'San Diego',
],
'price': [8, 12, 10, 16, 20, 18],
}
)
Schema.validate(lf).collect()
And of course you can do functional validation with decorators like so:
from pandera.typing.polars import LazyFrame
@pa.check_types
def function(lf: LazyFrame[Schema]) -> LazyFrame[Schema]:
return lf.filter(pl.col("state").eq("CA"))
function(lf).collect()
You can read more about the integration here. Not all pandera features are supported at this point, but depending on community demand/contributions we'll slowly add them. To learn more about what's currently supported, check out this table.
Special shoutout to @AndriiG13 and @FilipAisot for their contributions on the built-in checks and polars datatypes, respectively, and to @evanrasmussen9, @baldwinj30, @obiii, @Filimoa, @philiporlando, @r-bar, @alkment, @jjfantini, and @robertdj for their early feedback and bug reports during the 0.19.0 beta.
check_nullable does not uselessly compute isna() anymore in pandas backend by @smarie in https://github.com/unionai-oss/pandera/pull/1538Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.18.3...v0.19.0
fix pyspark tests when run on full test suite by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1593
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.19.0b3...v0.19.0b4
fix pyspark import error by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1591
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.19.0b2...v0.19.0b3
do not format if test is not necessary by @mattB1989 in https://github.com/unionai-oss/pandera/pull/1530
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.19.0b1...v0.19.0b2
Support polars DataFrames, LazyFrames by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1373
check_nullable does not uselessly compute isna() anymore in pandas backend by @smarie in https://github.com/unionai-oss/pandera/pull/1538Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.18.3...v0.19.0b1
Support polars DataFrames, LazyFrames by @cosmicBboy, @AndriiG13, and @FilipAisot in https://github.com/unionai-oss/pandera/pull/1373
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.18.3...v0.19.0b0
bugfix: add index validation to SeriesSchema by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1524
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.18.2...v0.18.3
Nothing published for this version
There is now support for granular control of schema-level or data-level validations. This can be done via the PANDERA_VALIDATION_DEPTH environment var
There is now support for granular control of schema-level or data-level validations. This can be done via the PANDERA_VALIDATION_DEPTH environment variable. Schema-level (or metadata) validation includes things like column name checks and column data types, while data-level validation involves checks that operate on actual data values.
export PANDERA_VALIDATION_DEPTH= SCHEMA_AND_DATA # check schema- and data-level checks (default)
export PANDERA_VALIDATION_DEPTH=SCHEMA_ONLY # only do schema-level checks
export PANDERA_VALIDATION_DEPTH=DATA_ONLY # only do data-level checks
Pandas data synthesis strategies now uses comparison operator functions for more efficient data synthesis. It also updates the minimum hypothesis version to 6.92.7.
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.18.0...v0.18.1
Pandera now supports the configuration environment variable PANDERA_VALIDATION_ENABLED. export PANDERA_VALIDATION_ENABLED=False now globally deactivat
Pandera now supports the configuration environment variable PANDERA_VALIDATION_ENABLED.
export PANDERA_VALIDATION_ENABLED=False now globally deactivates validation.
pip-compile usage does not have --no-emit-index-url by @filipeo2-mck in https://github.com/unionai-oss/pandera/pull/1390unique validation in PySpark by @filipeo2-mck in https://github.com/unionai-oss/pandera/pull/1396nullable=True by @filipeo2-mck in https://github.com/unionai-oss/pandera/pull/1403cache()/unpersist() toggles by @filipeo2-mck in https://github.com/unionai-oss/pandera/pull/1414PANDERA_VALIDATION_ENABLED for pandas and Configuration docs by @noklam in https://github.com/unionai-oss/pandera/pull/1354Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.17.2...v0.18.0
Nothing published for this version
improve pydantic model efficiency by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1358
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.17.1...v0.17.2
bugfix: empty list/dicts and None values should be handled by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1347
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.17.0...v0.17.1
This release adds support for pydantic v2. Pydantic < v2 should be supported for the foreseeable future.
This release adds support for pydantic v2. Pydantic < v2 should be supported for the foreseeable future.
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.16.1...v0.17.0
fix: docstrong for to_script by @tmcclintock in https://github.com/unionai-oss/pandera/pull/1266
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.16.1...v0.17.0b0
Use pandera-dev in envrc to match the environment.yml by @thomasjpfan in https://github.com/unionai-oss/pandera/pull/1264
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.16.0...v0.16.1
Use custom check strategies by @honno in https://github.com/unionai-oss/pandera/pull/1203
test_definied_check_strategy by @honno in https://github.com/unionai-oss/pandera/pull/1224unique_values_eq argument to pa.Field by @karajan1001 in https://github.com/unionai-oss/pandera/pull/1230Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.15.2...v0.16.0
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.16.0b0...v0.16.0b1
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.16.0b0...v0.16.0b1
Use custom check strategies by @honno in https://github.com/unionai-oss/pandera/pull/1203
test_definied_check_strategy by @honno in https://github.com/unionai-oss/pandera/pull/1224unique_values_eq argument to pa.Field by @karajan1001 in https://github.com/unionai-oss/pandera/pull/1230Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.15.1...v0.16.0b0
support multiple pyspark versions by @NeerajMalhotra-QB in https://github.com/unionai-oss/pandera/pull/1221
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.16.0a1...v0.16.0a2
Nothing published for this version
Nothing published for this version
pin pydantic to < v2 by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1255
Full Changelog: https://github.com/unionai-oss/pandera/compare/v0.15.1...v0.15.2
Your coding agent can read these notes before it upgrades. Set up the MCP server →