Created and trusted by engineers atGoogle

High-Performance Data Pipelines for Python

Datagrunt simplifies reading, writing, and converting CSV, Excel, Parquet, and PDF files. By uniting best-in-class engines—Polars for Rust-speed, DuckDB for local SQL, and PyArrow for columnar memory—Datagrunt abstracts away boilerplate, formatting limits, and delimiter headaches.

Get Started GitHub
$ uv pip install datagrunt

Write Clean, Intention-Revealing Code

demo.py
from datagrunt import CSVReader, PDFReader

# 1. Zero-boilerplate CSV loading: auto-sniffs delimiter (comma, tab, semicolon) 
# and processes with Polars (default) or DuckDB/PyArrow.
df = CSVReader("huge_data.csv").to_dataframe()

# 2. Unified PDF parsing: extracts structured tables, text, and images 
# using PDFium or PyMuPDF, with optional Tesseract OCR.
document = PDFReader("invoice.pdf").to_dicts()

Core Components

Datagrunt wraps high-performance execution engines in a consistent, developer-first interface.

🧠 Intelligent Delimiter Inference

No more hardcoding `sep=','` or guessing delimiters. Datagrunt automatically sniffs and applies commas, semicolons, tabs, and pipes using advanced heuristics.

Multi-Engine Execution

Swap execution engines on the fly. Route queries to Polars for memory-efficient speed, DuckDB for local SQL analytics, or PyArrow for columnar serialization.

📄 Unified PDF & Table Parser

Extract text, tabular boundaries, and embedded images from PDFs in a single line. Utilizes PDFium and optional PyMuPDF with Tesseract OCR support.

🔄 Format Conversion Pipelines

Easily convert files between formats (CSV, Excel, Parquet, JSON, JSONL) with compression passthrough and worksheet sheet-by-sheet support.


Supported Engines & Ecosystem

Datagrunt integrates industry-standard libraries to deliver maximum throughput.

Polars

Rust DataFrame Core

DuckDB

In-process Analytical SQL

PyArrow

Columnar Serialization