Skip to content

Add a pandera CLI: validate, infer, and generate commands#2402

Open
cosmicBboy wants to merge 6 commits into
mainfrom
add-cli
Open

Add a pandera CLI: validate, infer, and generate commands#2402
cosmicBboy wants to merge 6 commits into
mainfrom
add-cli

Conversation

@cosmicBboy

Copy link
Copy Markdown
Collaborator

What this PR does

Adds a Typer-based command-line interface to pandera (installed via the pandera[cli] extra), exposed as pandera / python -m pandera:

  • pandera validate — validate an on-disk dataset (CSV, Parquet, JSON, Feather, ...) against a serialized schema (YAML/JSON), with Rich-rendered pass/fail reports and non-zero exit codes on failure. Supports pandas, modin, dask, pyspark.pandas, pyspark.sql, polars, and ibis backends, inferred from the schema file or set explicitly with --backend.
  • pandera infer — infer a schema from a data file and write it as YAML, JSON, or a Python module (--format py, schema- or model-style via --script-type). Schema inference and statistics support has been extended to polars, pyspark.sql, ibis, and xarray.
  • pandera generate — generate synthetic data from a schema using the strategies machinery.

Narwhals backend support

pandera validate gains a --use-narwhals flag that validates polars, ibis, and pyspark.sql schemas through the Narwhals-powered validation backend (the per-invocation equivalent of PANDERA_USE_NARWHALS_BACKEND=True). The flag exits with a clear error for pandas-API schemas and when narwhals is not installed.

Docs

  • New CLI reference (docs/source/cli.rst, auto-generated command docs) and copy-paste CLI guide (docs/source/cli_guide.md), including a Narwhals section.
  • narwhals_backend.md documents the CLI flag; schema inference and data synthesis docs updated.

Tests

  • tests/cli/ covers command behavior and schema-format × data-format × backend matrices (PySpark combos opt-in via PANDERA_RUN_SPARK_CLI=1), plus new test_cli_narwhals.py covering --use-narwhals success/failure paths, the env-var path, ibis, and the pandas-API rejection. Full CLI suite: 103 passed, 9 skipped locally.
  • New schema inference/statistics tests for polars, pyspark, ibis, and xarray.

Notes for reviewers

  • This branch was rebased onto main; the io serialization groundwork it was originally stacked on (polars/pyspark/ibis io, minimal serialization, script model) is already merged, so this PR is the CLI layer on top.
  • GeoDataFrameSchema.to_script was extended with script_type to stay compatible with the extended pandas container signature.

🤖 Generated with Claude Code

cosmicBboy and others added 6 commits July 5, 2026 22:23
Signed-off-by: cosmicBboy <niels.bantilan@gmail.com>
Signed-off-by: cosmicBboy <niels.bantilan@gmail.com>
Signed-off-by: cosmicBboy <niels.bantilan@gmail.com>
Signed-off-by: cosmicBboy <niels.bantilan@gmail.com>
Signed-off-by: cosmicBboy <niels.bantilan@gmail.com>
Add a --use-narwhals flag to pandera validate that enables the
Narwhals-powered validation backend (set_config(use_narwhals_backend=True))
for polars, ibis, and pyspark.sql schemas. The flag errors out for
pandas-API schemas and when narwhals is not installed, and is the
per-invocation equivalent of PANDERA_USE_NARWHALS_BACKEND=True.

Also extend GeoDataFrameSchema.to_script with script_type to match the
extended pandas container signature after rebasing onto main.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: cosmicBboy <niels.bantilan@gmail.com>
@codecov

codecov Bot commented Jul 6, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 22.22222% with 1043 lines in your changes missing coverage. Please review.
✅ Project coverage is 85.52%. Comparing base (26d54f2) to head (64f0f9a).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
pandera/_cli/rich_report.py 0.00% 344 Missing ⚠️
pandera/_cli/common.py 0.00% 162 Missing ⚠️
pandera/_cli/infer.py 0.00% 148 Missing ⚠️
pandera/_cli/generate.py 0.00% 142 Missing ⚠️
pandera/io/_script_model.py 54.43% 72 Missing ⚠️
pandera/io/common_io.py 76.79% 42 Missing ⚠️
pandera/_cli/validate.py 0.00% 38 Missing ⚠️
pandera/schema_statistics/xarray.py 34.00% 33 Missing ⚠️
pandera/_cli/__init__.py 0.00% 14 Missing ⚠️
pandera/cli.py 0.00% 10 Missing ⚠️
... and 11 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2402      +/-   ##
==========================================
- Coverage   90.89%   85.52%   -5.38%     
==========================================
  Files         192      202      +10     
  Lines       17087    19017    +1930     
==========================================
+ Hits        15532    16264     +732     
- Misses       1555     2753    +1198     
Flag Coverage Δ
unit-tests-dask-Linux-py3.10-pandas2.3.3-polars 22.59% <0.37%> (-1.65%) ⬇️
unit-tests-dask-Linux-py3.11-pandas2.3.3-polars 22.59% <0.37%> (-1.65%) ⬇️
unit-tests-dask-Linux-py3.12-pandas2.3.3-polars 22.59% <0.37%> (-1.65%) ⬇️
unit-tests-dask-Linux-py3.13-pandas2.3.3-polars 22.59% <0.37%> (-1.65%) ⬇️
unit-tests-dask-Linux-py3.14-pandas2.3.3-polars 22.50% <0.37%> (-1.65%) ⬇️
unit-tests-dask-Windows-py3.10-pandas2.3.3-polars 22.51% <0.37%> (-1.65%) ⬇️
unit-tests-dask-Windows-py3.11-pandas2.3.3-polars 22.51% <0.37%> (-1.65%) ⬇️
unit-tests-dask-Windows-py3.12-pandas2.3.3-polars 22.51% <0.37%> (-1.65%) ⬇️
unit-tests-dask-Windows-py3.13-pandas2.3.3-polars 22.51% <0.37%> (-1.65%) ⬇️
unit-tests-dask-Windows-py3.14-pandas2.3.3-polars 22.42% <0.37%> (-1.65%) ⬇️
unit-tests-dask-macOS-py3.10-pandas2.3.3-polars 22.53% <0.37%> (-1.65%) ⬇️
unit-tests-dask-macOS-py3.11-pandas2.3.3-polars 22.53% <0.37%> (-1.65%) ⬇️
unit-tests-fastapi-Linux-py3.10-pandas2.3.3-pydantic2.12.3 22.99% <0.37%> (-1.70%) ⬇️
unit-tests-fastapi-Linux-py3.11-pandas2.3.3-pydantic2.12.3 22.99% <0.37%> (-1.71%) ⬇️
unit-tests-fastapi-Linux-py3.11-pandas3.0.0-pydantic2.12.3 23.06% <0.37%> (-1.71%) ⬇️
unit-tests-fastapi-Linux-py3.12-pandas2.3.3-pydantic2.12.3 22.99% <0.37%> (-1.70%) ⬇️
unit-tests-fastapi-Linux-py3.12-pandas3.0.0-pydantic2.12.3 23.06% <0.37%> (-1.71%) ⬇️
unit-tests-fastapi-Linux-py3.13-pandas2.3.3-pydantic2.12.3 22.99% <0.37%> (-1.65%) ⬇️
unit-tests-fastapi-Linux-py3.14-pandas2.3.3-pydantic2.12.3 22.91% <0.37%> (-1.70%) ⬇️
unit-tests-fastapi-Linux-py3.14-pandas3.0.0-pydantic2.12.3 22.97% <0.37%> (-1.71%) ⬇️
unit-tests-fastapi-Windows-py3.10-pandas2.3.3-pydantic2.12.3 22.91% <0.37%> (-1.69%) ⬇️
unit-tests-geopandas-Linux-py3.10-pandas2.3.3-pydantic2.12.3 28.38% <3.72%> (-1.70%) ⬇️
unit-tests-geopandas-Linux-py3.11-pandas2.3.3-pydantic2.12.3 28.38% <3.72%> (-1.72%) ⬇️
unit-tests-geopandas-Linux-py3.11-pandas3.0.0-pydantic2.12.3 28.38% <3.80%> (-1.69%) ⬇️
unit-tests-geopandas-Linux-py3.12-pandas2.3.3-pydantic2.12.3 28.38% <3.72%> (-1.70%) ⬇️
unit-tests-geopandas-Linux-py3.12-pandas3.0.0-pydantic2.12.3 28.38% <3.80%> (-1.69%) ⬇️
unit-tests-geopandas-Linux-py3.13-pandas2.3.3-pydantic2.12.3 28.38% <3.72%> (-1.72%) ⬇️
unit-tests-geopandas-Linux-py3.13-pandas3.0.0-pydantic2.12.3 28.38% <3.80%> (-1.70%) ⬇️
unit-tests-geopandas-Windows-py3.10-pandas2.3.3-pydantic2.12.3 28.28% <3.72%> (-1.70%) ⬇️
unit-tests-geopandas-Windows-py3.11-pandas2.3.3-pydantic2.12.3 28.28% <3.72%> (-1.70%) ⬇️
unit-tests-hypotheses-Linux-py3.10-pandas2.3.3-pydantic2.12.3 20.95% <0.37%> (-1.53%) ⬇️
unit-tests-hypotheses-Linux-py3.11-pandas2.3.3-pydantic2.12.3 20.95% <0.37%> (-1.54%) ⬇️
unit-tests-hypotheses-Linux-py3.11-pandas3.0.0-pydantic2.12.3 20.99% <0.37%> (-1.55%) ⬇️
unit-tests-hypotheses-Linux-py3.12-pandas2.3.3-pydantic2.12.3 20.95% <0.37%> (?)
unit-tests-hypotheses-Linux-py3.12-pandas3.0.0-pydantic2.12.3 20.99% <0.37%> (-1.55%) ⬇️
unit-tests-hypotheses-Linux-py3.13-pandas2.3.3-pydantic2.12.3 20.94% <0.37%> (-1.50%) ⬇️
unit-tests-hypotheses-Linux-py3.13-pandas3.0.0-pydantic2.12.3 20.99% <0.37%> (-1.54%) ⬇️
unit-tests-hypotheses-Linux-py3.14-pandas2.3.3-pydantic2.12.3 20.85% <0.37%> (-1.54%) ⬇️
unit-tests-hypotheses-Linux-py3.14-pandas3.0.0-pydantic2.12.3 20.88% <0.37%> (-1.50%) ⬇️
unit-tests-hypotheses-Windows-py3.11-pandas2.3.3-pydantic2.12.3 20.88% <0.37%> (-1.54%) ⬇️
unit-tests-hypotheses-Windows-py3.11-pandas3.0.0-pydantic2.12.3 20.92% <0.37%> (-1.45%) ⬇️
unit-tests-ibis-Linux-py3.10-pandas2.3.3-polars 27.03% <1.93%> (-1.85%) ⬇️
unit-tests-ibis-Linux-py3.11-pandas2.3.3-polars 27.03% <1.93%> (-1.85%) ⬇️
unit-tests-ibis-Linux-py3.12-pandas2.3.3-polars 27.03% <1.93%> (-1.85%) ⬇️
unit-tests-ibis-Linux-py3.13-pandas2.3.3-polars 27.03% <1.93%> (-1.85%) ⬇️
unit-tests-ibis-Linux-py3.14-pandas2.3.3-polars 26.85% <1.93%> (-1.85%) ⬇️
unit-tests-ibis-Windows-py3.10-pandas2.3.3-polars 26.96% <1.93%> (-1.85%) ⬇️
unit-tests-ibis-Windows-py3.11-pandas2.3.3-polars 26.96% <1.93%> (-1.85%) ⬇️
unit-tests-ibis-Windows-py3.12-pandas2.3.3-polars 26.96% <1.93%> (-1.85%) ⬇️
unit-tests-ibis-Windows-py3.13-pandas2.3.3-polars 26.96% <1.93%> (-1.85%) ⬇️
unit-tests-ibis-Windows-py3.14-pandas2.3.3-polars 26.78% <1.93%> (-1.84%) ⬇️
unit-tests-ibis-macOS-py3.10-pandas2.3.3-polars 26.98% <1.93%> (-1.85%) ⬇️
unit-tests-ibis-macOS-py3.11-pandas2.3.3-polars 26.98% <1.93%> (-1.85%) ⬇️
unit-tests-io-Linux-py3.10-pandas2.3.3-pydantic2.12.3 36.37% <19.68%> (-1.69%) ⬇️
unit-tests-io-Linux-py3.11-pandas2.3.3-pydantic2.12.3 36.40% <19.68%> (-1.74%) ⬇️
unit-tests-io-Linux-py3.11-pandas3.0.0-pydantic2.12.3 36.37% <19.61%> (-1.74%) ⬇️
unit-tests-io-Linux-py3.12-pandas2.3.3-pydantic2.12.3 36.40% <19.68%> (-1.74%) ⬇️
unit-tests-io-Linux-py3.12-pandas3.0.0-pydantic2.12.3 36.37% <19.61%> (-1.74%) ⬇️
unit-tests-io-Linux-py3.13-pandas2.3.3-pydantic2.12.3 36.40% <19.68%> (-1.73%) ⬇️
unit-tests-io-Windows-py3.10-pandas2.3.3-pydantic2.12.3 36.01% <16.48%> (-1.75%) ⬇️
unit-tests-io-Windows-py3.11-pandas2.3.3-pydantic2.12.3 36.04% <16.48%> (-1.70%) ⬇️
unit-tests-modin-dask-Linux-py3.10-pandas2.3.3-polars 28.59% <0.37%> (-2.10%) ⬇️
unit-tests-modin-dask-Linux-py3.11-pandas2.3.3-polars 28.59% <0.37%> (-2.11%) ⬇️
unit-tests-modin-dask-Linux-py3.12-pandas2.3.3-polars 28.59% <0.37%> (-2.10%) ⬇️
unit-tests-modin-dask-Windows-py3.11-pandas2.3.3-polars 28.51% <0.37%> (-2.01%) ⬇️
unit-tests-modin-dask-Windows-py3.12-pandas2.3.3-polars 28.51% <0.37%> (-2.09%) ⬇️
unit-tests-modin-ray-Linux-py3.10-pandas2.3.3-polars 28.56% <0.37%> (-2.09%) ⬇️
unit-tests-modin-ray-Linux-py3.11-pandas2.3.3-polars 28.56% <0.37%> (-2.09%) ⬇️
unit-tests-modin-ray-Linux-py3.12-pandas2.3.3-polars 28.56% <0.37%> (-2.09%) ⬇️
unit-tests-modin-ray-macOS-py3.10-pandas2.3.3-polars 28.51% <0.37%> (-2.09%) ⬇️
unit-tests-modin-ray-macOS-py3.11-pandas2.3.3-polars 28.51% <0.37%> (-2.09%) ⬇️
unit-tests-mypy-Linux-py3.10-pandas2.3.3-pydantic2.12.3 21.84% <0.37%> (-1.62%) ⬇️
unit-tests-mypy-Linux-py3.11-pandas2.3.3-pydantic2.12.3 21.84% <0.37%> (-1.57%) ⬇️
unit-tests-mypy-Linux-py3.11-pandas3.0.0-pydantic2.12.3 21.91% <0.37%> (?)
unit-tests-mypy-Linux-py3.12-pandas3.0.0-pydantic2.12.3 21.91% <0.37%> (-1.57%) ⬇️
unit-tests-narwhals-Linux-py3.10 26.34% <0.67%> (-1.97%) ⬇️
unit-tests-narwhals-Linux-py3.11 26.34% <0.67%> (-1.97%) ⬇️
unit-tests-narwhals-Linux-py3.12 26.34% <0.67%> (-1.97%) ⬇️
unit-tests-narwhals-Linux-py3.13 26.34% <0.67%> (-1.97%) ⬇️
unit-tests-narwhals-Linux-py3.14 26.13% <0.67%> (-1.96%) ⬇️
unit-tests-narwhals-backend-ibis-py3.10 29.79% <2.08%> (-2.06%) ⬇️
unit-tests-narwhals-backend-ibis-py3.11 29.68% <2.01%> (-2.06%) ⬇️
unit-tests-narwhals-backend-ibis-py3.12 29.68% <2.01%> (-2.06%) ⬇️
unit-tests-narwhals-backend-ibis-py3.13 29.68% <2.01%> (-2.06%) ⬇️
unit-tests-narwhals-backend-ibis-py3.14 29.48% <2.01%> (-2.05%) ⬇️
unit-tests-pandas-Linux-py3.10-pandas2.3.3-pydantic1.10.11 40.00% <3.87%> (-2.65%) ⬇️
unit-tests-pandas-Linux-py3.10-pandas2.3.3-pydantic2.12.3 40.15% <3.87%> (-2.66%) ⬇️
unit-tests-pandas-Linux-py3.11-pandas2.3.3-pydantic1.10.11 40.00% <3.87%> (-2.65%) ⬇️
unit-tests-pandas-Linux-py3.11-pandas2.3.3-pydantic2.12.3 40.15% <3.87%> (-2.66%) ⬇️
unit-tests-pandas-Linux-py3.11-pandas3.0.0-pydantic1.10.11 40.00% <3.72%> (-2.66%) ⬇️
unit-tests-pandas-Linux-py3.11-pandas3.0.0-pydantic2.12.3 40.15% <3.72%> (-2.65%) ⬇️
unit-tests-pandas-Linux-py3.12-pandas2.3.3-pydantic1.10.11 39.99% <3.87%> (-2.65%) ⬇️
unit-tests-pandas-Linux-py3.12-pandas2.3.3-pydantic2.12.3 40.13% <3.87%> (-2.66%) ⬇️
unit-tests-pandas-Linux-py3.12-pandas3.0.0-pydantic1.10.11 39.99% <3.72%> (-2.66%) ⬇️
unit-tests-pandas-Linux-py3.12-pandas3.0.0-pydantic2.12.3 40.13% <3.72%> (-2.67%) ⬇️
unit-tests-pandas-Linux-py3.13-pandas2.3.3-pydantic1.10.11 39.99% <3.87%> (-2.65%) ⬇️
unit-tests-pandas-Linux-py3.13-pandas2.3.3-pydantic2.12.3 40.13% <3.87%> (-2.66%) ⬇️
unit-tests-pandas-Linux-py3.13-pandas3.0.0-pydantic1.10.11 39.99% <3.72%> (-2.66%) ⬇️
unit-tests-pandas-Linux-py3.13-pandas3.0.0-pydantic2.12.3 40.13% <3.72%> (-2.67%) ⬇️
unit-tests-pandas-Linux-py3.14-pandas2.3.3-pydantic2.12.3 40.11% <3.87%> (-2.67%) ⬇️
unit-tests-pandas-Linux-py3.14-pandas3.0.0-pydantic2.12.3 40.11% <3.72%> (-2.68%) ⬇️
unit-tests-pandas-Windows-py3.10-pandas2.3.3-pydantic1.10.11 39.92% <3.87%> (-2.64%) ⬇️
unit-tests-pandas-Windows-py3.10-pandas2.3.3-pydantic2.12.3 40.06% <3.87%> (-2.65%) ⬇️
unit-tests-pandas-Windows-py3.11-pandas2.3.3-pydantic1.10.11 39.92% <3.87%> (-2.64%) ⬇️
unit-tests-pandas-Windows-py3.11-pandas2.3.3-pydantic2.12.3 40.06% <3.87%> (-2.65%) ⬇️
unit-tests-pandas-Windows-py3.11-pandas3.0.0-pydantic1.10.11 39.92% <3.72%> (-2.65%) ⬇️
unit-tests-pandas-Windows-py3.11-pandas3.0.0-pydantic2.12.3 40.06% <3.72%> (-2.66%) ⬇️
unit-tests-pandas-Windows-py3.12-pandas2.3.3-pydantic1.10.11 39.91% <3.87%> (-2.64%) ⬇️
unit-tests-pandas-Windows-py3.12-pandas2.3.3-pydantic2.12.3 40.05% <3.87%> (-2.65%) ⬇️
unit-tests-pandas-Windows-py3.12-pandas3.0.0-pydantic1.10.11 39.91% <3.72%> (-2.65%) ⬇️
unit-tests-pandas-Windows-py3.12-pandas3.0.0-pydantic2.12.3 40.05% <3.72%> (-2.66%) ⬇️
unit-tests-pandas-Windows-py3.13-pandas2.3.3-pydantic1.10.11 39.91% <3.87%> (-2.64%) ⬇️
unit-tests-pandas-Windows-py3.13-pandas2.3.3-pydantic2.12.3 40.05% <3.87%> (-2.65%) ⬇️
unit-tests-pandas-Windows-py3.13-pandas3.0.0-pydantic1.10.11 39.91% <3.72%> (-2.65%) ⬇️
unit-tests-pandas-Windows-py3.13-pandas3.0.0-pydantic2.12.3 40.05% <3.72%> (-2.66%) ⬇️
unit-tests-pandas-Windows-py3.14-pandas2.3.3-pydantic2.12.3 40.03% <3.87%> (-2.66%) ⬇️
unit-tests-pandas-Windows-py3.14-pandas3.0.0-pydantic2.12.3 40.03% <3.72%> (-2.67%) ⬇️
unit-tests-pandas-macOS-py3.10-pandas2.3.3-pydantic1.10.11 39.94% <3.87%> (-2.64%) ⬇️
unit-tests-pandas-macOS-py3.10-pandas2.3.3-pydantic2.12.3 40.09% <3.87%> (-2.65%) ⬇️
unit-tests-pandas-macOS-py3.11-pandas2.3.3-pydantic1.10.11 39.94% <3.87%> (-2.64%) ⬇️
unit-tests-pandas-macOS-py3.11-pandas2.3.3-pydantic2.12.3 40.09% <3.87%> (-2.65%) ⬇️
unit-tests-pandas-macOS-py3.11-pandas3.0.0-pydantic1.10.11 39.94% <3.72%> (-2.66%) ⬇️
unit-tests-pandas-macOS-py3.11-pandas3.0.0-pydantic2.12.3 40.09% <3.72%> (-2.67%) ⬇️
unit-tests-pandas-macOS-py3.12-pandas2.3.3-pydantic1.10.11 39.93% <3.87%> (-2.64%) ⬇️
unit-tests-pandas-macOS-py3.12-pandas2.3.3-pydantic2.12.3 40.08% <3.87%> (-2.65%) ⬇️
unit-tests-pandas-macOS-py3.12-pandas3.0.0-pydantic1.10.11 39.93% <3.72%> (-2.65%) ⬇️
unit-tests-pandas-macOS-py3.12-pandas3.0.0-pydantic2.12.3 40.08% <3.72%> (-2.67%) ⬇️
unit-tests-pandas-macOS-py3.13-pandas2.3.3-pydantic1.10.11 39.93% <3.87%> (-2.64%) ⬇️
unit-tests-pandas-macOS-py3.13-pandas2.3.3-pydantic2.12.3 40.08% <3.87%> (-2.65%) ⬇️
unit-tests-pandas-macOS-py3.13-pandas3.0.0-pydantic1.10.11 39.93% <3.72%> (-2.65%) ⬇️
unit-tests-pandas-macOS-py3.13-pandas3.0.0-pydantic2.12.3 40.08% <3.72%> (-2.67%) ⬇️
unit-tests-pandas-macOS-py3.14-pandas2.3.3-pydantic2.12.3 40.05% <3.87%> (-2.66%) ⬇️
unit-tests-pandas-macOS-py3.14-pandas3.0.0-pydantic2.12.3 40.05% <3.72%> (-2.67%) ⬇️
unit-tests-strategies-Linux-py3.10-pandas2.3.3-pydantic2.12.3 31.99% <1.56%> (?)
unit-tests-strategies-Linux-py3.11-pandas3.0.0-pydantic2.12.3 31.98% <1.56%> (-2.22%) ⬇️
unit-tests-strategies-Linux-py3.12-pandas2.3.3-pydantic2.12.3 31.99% <1.56%> (?)
unit-tests-strategies-Linux-py3.12-pandas3.0.0-pydantic2.12.3 31.99% <1.56%> (-2.18%) ⬇️
unit-tests-strategies-Linux-py3.13-pandas2.3.3-pydantic2.12.3 31.99% <1.56%> (-2.20%) ⬇️
unit-tests-strategies-Linux-py3.13-pandas3.0.0-pydantic2.12.3 31.99% <1.56%> (-2.20%) ⬇️
unit-tests-strategies-Linux-py3.14-pandas3.0.0-pydantic2.12.3 31.93% <1.56%> (?)
unit-tests-xarray-Linux-py3.10-pandas2.3.3-polars 29.84% <1.64%> (-1.96%) ⬇️
unit-tests-xarray-Linux-py3.11-pandas2.3.3-polars 29.84% <1.64%> (-1.96%) ⬇️
unit-tests-xarray-Linux-py3.12-pandas2.3.3-polars 29.84% <1.64%> (-1.96%) ⬇️
unit-tests-xarray-Linux-py3.13-pandas2.3.3-polars 29.84% <1.64%> (-1.96%) ⬇️
unit-tests-xarray-Linux-py3.14-pandas2.3.3-polars 29.76% <1.64%> (-1.96%) ⬇️
unit-tests-xarray-Windows-py3.10-pandas2.3.3-polars 29.77% <1.64%> (-1.96%) ⬇️
unit-tests-xarray-Windows-py3.11-pandas2.3.3-polars 29.77% <1.64%> (-1.96%) ⬇️
unit-tests-xarray-Windows-py3.12-pandas2.3.3-polars 29.77% <1.64%> (-1.96%) ⬇️
unit-tests-xarray-Windows-py3.13-pandas2.3.3-polars 29.77% <1.64%> (-1.96%) ⬇️
unit-tests-xarray-Windows-py3.14-pandas2.3.3-polars 29.70% <1.64%> (-1.96%) ⬇️
unit-tests-xarray-macOS-py3.10-pandas2.3.3-polars 29.78% <1.64%> (-1.96%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant