What's Changed
- Report all missing required columns in lazy validation by @vineethsaivs in #2397
- fix(pandas): report differing categories in dtype mismatch error by @sha-sta in #2391
- fix(pandas-engine): treat an Enum annotation as a categorical dtype (#2052) by @cycsmail in #2399
- fix(pandas): run column parsers before dataframe-level coercion by @sha-sta in #2400
- fix(pandas): treat NA as coercible for masked nullable dtypes by @sha-sta in #2404
- Fix parenthesized @dataframe_parser() decorator form by @vineethsaivs in #2408
- fix(polars): avoid concat deprecation in lazy validation by @RedZapdos123 in #2411
- fix: Repair coerce and parser options for xarray Datasets by @abaarsma in #2413
- feat(narwhals): support the pandas schema API in the narwhals backend by @cosmicBboy in #2417
- fix(io): deserialize parametrized Decimal dtypes from yaml/json by @cycsmail in #2434
- fix(pandas): apply parsers to Index fields and schema components by @cycsmail in #2435
- feat(pyarrow): add first-class pyarrow.Table schema validation by @sravankumarkunadi in #2427
- Add a pandera CLI: validate, infer, and generate commands by @cosmicBboy in #2402
- add backend info to the cli by @cosmicBboy in #2446
- fix(pandas): respect Optional pydantic fields as nullable in PydanticModel columns (closes #2406) by @feiiiiii5 in #2429
- doc: Fix "list" type annotation by @VeckoTheGecko in #2440
- Support itemsize-parameterized numpy dtypes in the pandas engine by @mannemkarthik010 in #2437
- fix: bind self correctly in check_input when an arg is passed by keyword by @Sanjays2402 in #2428
- fix(polars): raise minimum polars version to
1.20.0by @fhoehle in #2412 - docs: fix duplicated "the" typos in Check and Hypothesis docstrings by @maupatel in #2445
- Add a backend-neutral
FieldType[T]typing contract by @Dev-iL in #2448 - fix: handle scalar groupby keys in _format_groupby_input by @feiiiiii5 in #2420
- fix(decorators): support keyword-only / variadic functions in check_input by @feiiiiii5 in #2454
- ci: only run unit tests for changed areas by @cosmicBboy in #2450
- fix(docs): make intersphinx fetch resilient to transient failures by @cosmicBboy in #2452
- fix(docs): scope pyspark JDK24 security-manager opt-in to JDK 24 only by @cosmicBboy in #2451
- fix: respect pydantic serialization aliases by @mameikagou in #2449
New Contributors
- @sha-sta made their first contribution in #2391
- @abaarsma made their first contribution in #2413
- @sravankumarkunadi made their first contribution in #2427
- @feiiiiii5 made their first contribution in #2429
- @VeckoTheGecko made their first contribution in #2440
- @mannemkarthik010 made their first contribution in #2437
- @Sanjays2402 made their first contribution in #2428
- @fhoehle made their first contribution in #2412
- @maupatel made their first contribution in #2445
- @mameikagou made their first contribution in #2449
Full Changelog: v0.32.1...v0.33.0