Datagrunt 5.0.2: PyO3 0.30 & Rust Build Infrastructure Upgrades
November 4, 2026by Martin Graham
Datagrunt 5.0.2 brings underlying build infrastructure and Rust ecosystem dependency upgrades to ensure long-term stability, faster build times, and compatibility with the latest Rust CPython toolchains.
Highlights of Version 5.0.2
PyO3 0.30.1 & Maturin 1.14.1 Engine Upgrade
The core native CPython extension in Datagrunt is built using PyO3 and packaged with Maturin. In this release:
- PyO3 0.30.1: Upgraded from 0.29.0. PyO3 0.30 introduces stricter configuration checks and improved FFI performance across Python 3.11+ C-API bindings (
abi3-py311). - Maturin 1.14.1 floor: Maturin 1.14.0 had a bug where generated PyO3 configuration files omitted the required
versionkey, causing PyO3 0.30 builds to fail (#460). Bumping Maturin tov1.14.1fixes wheel and source distribution (sdist) generation across all platform matrix workflows.
Upgraded Core Rust Crate Dependencies
fancy-regex0.20.0: Upgraded from 0.19.0 indatagrunt-core. Provides enhanced performance and stability for advanced regex evaluation across CSV dialect detection and text cleaning routines.proptest1.12.0: Upgraded from 1.11.0. Keeps property-based differential testing robust and synced with modern Rustrandandbit-setecosystems.
Refreshed Developer Toolchain & CI Pipeline
To maintain strict quality gates without breaking on external tooling releases, development dependencies and GitHub Actions have been updated:
- Type Checkers & Formatters:
mypybound updated to>=1.14,<2.5,ruffbound updated to>=0.15.17,<0.18. - Property Testing:
hypothesisbound updated to>=6.164.0,<6.171. - CI Workflows: Updated
setup-uv(v10.3.3),upload-artifact(v7.0.2),download-artifact(v8.0.2),create-github-app-token(v3.3.0), andpypa/gh-action-pypi-publish(v1.14.3).
Verifying Your Installation
No API changes were introduced in this patch release. You can verify your installed version with Python:
import datagrunt
print(f"Datagrunt version: {datagrunt.__version__}")
# Output: Datagrunt version: 5.0.2
# All standard Readers & Writers operate as expected
from datagrunt import CSVReader, ParquetWriter
reader = CSVReader("data.csv")
print(f"Detected delimiter: {reader.dialect.delimiter}")Upgrading
Upgrade to Datagrunt 5.0.2 using uv or pip:
uv pip install --upgrade "datagrunt[pdf]"