Skip to main content

Generic Frictionless-aligned tabular-data-package engine. Code-agnostic schemas, lazy ibis/duckdb pipelines, foreign-key + sync-state validation, geographic scoping, and edit/rollback primitives.

Project description

datagrove

Generic, Frictionless-aligned tabular-data-package engine. Powers GMNSpy and is designed to support other tabular data specifications (GTFS, custom formats) via the same primitives.

Status: pre-alpha (0.1.0.dev0). API is unstable.

What it provides

  • Pydantic models for Frictionless Data Package, Resource, Schema, Field, ForeignKey
  • Engine abstraction (Ibis/DuckDB default; Polars; Pandas)
  • Format adapters: CSV, Parquet (partitioned), DuckDB, zipped CSV, remote URLs (fsspec)
  • Validation framework: schema, structural, foreign-key, sync-state (dirty-tracker)
  • Lazy dataset surface: Package, Table, View with geographic scoping (bbox, polygon, geometry-buffer)
  • Operation cost model + gating, batched/pooled writes
  • Report renderers: rich console, JSON, interactive single-file HTML
  • Generic edit/diff/session/rollback framework
  • Generic CLI (datagrove …): validate, convert, info, scope, describe — extendable by domain packages via plugin pattern
  • Generic data-quality framework (rule base class, threshold config, entry-point plugin discovery — no domain rules)
  • Generic notebook helpers (_repr_html_ for Package/Table/ValidationReport/EditResult)
  • FastAPI primitives for building self-hostable data APIs
  • MCP server primitives for AI-agent consumption
  • Docgen: markdown + llms.txt + machine-readable API index

Composition with domain packages

gmnspy and (in the future) similar packages compose on top:

Concern datagrove (generic) gmnspy (GMNS-specific)
editing framework editing/ clean/ (simplify_geometry, …)
HTTP server api/ (primitives) server/ (assembled FastAPI app)
MCP mcp/ (primitives) mcp/ (GMNS tool registrations)
CLI cli/ (generic commands + extension hook) cli/ (GMNS commands on the same typer app)
Quality quality/ (rule framework) quality/ (GMNS rule pack via entry point)
Notebook notebook/ (Package/Table/ValidationReport reprs) notebook/ (Network repr + scope widgets)

Install

Pick the tool you already use — these are equivalent:

# uv (recommended — fastest, handles workspace projects + lockfiles)
uv add datagrove

# uv pip (drop-in pip replacement, no project file needed)
uv pip install datagrove

# pip (classic)
pip install datagrove

# pipx (CLI-only, isolated env; gives you the `datagrove` command without
#       polluting your project env)
pipx install datagrove

Optional extras

# Engines (pick the one your downstream code already uses)
uv add 'datagrove[polars]'      # lazy polars frames
uv add 'datagrove[pandas]'      # eager pandas DataFrames

# Cloud storage backends (read from s3://, gs://, azure://)
uv add 'datagrove[s3]'          # add 'gcs' or 'azure' as needed

# Credential helpers + AI surface
uv add 'datagrove[keyring]'     # resolve creds from system keychain
uv add 'datagrove[mcp]'         # `datagrove mcp serve` for Claude Desktop / Code

Combine extras with commas: uv add 'datagrove[polars,s3,keyring]'.

Repo

Developed in the GMNSpy monorepo under packages/datagrove/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

datagrove-1.0.0b1.tar.gz (203.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

datagrove-1.0.0b1-py3-none-any.whl (253.0 kB view details)

Uploaded Python 3

File details

Details for the file datagrove-1.0.0b1.tar.gz.

File metadata

  • Download URL: datagrove-1.0.0b1.tar.gz
  • Upload date:
  • Size: 203.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for datagrove-1.0.0b1.tar.gz
Algorithm Hash digest
SHA256 fffe6619eaba94642df8430b904d02bd4303014c7e15b89fff9bb650146cd701
MD5 d4342fda785377c3d2c6624664e51d48
BLAKE2b-256 b3494d452459f9cecf0b36da2ee504262af6c35d7f5b9bb3320b01a9824ada4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for datagrove-1.0.0b1.tar.gz:

Publisher: publish-datagrove.yml on e-lo/GMNSpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file datagrove-1.0.0b1-py3-none-any.whl.

File metadata

  • Download URL: datagrove-1.0.0b1-py3-none-any.whl
  • Upload date:
  • Size: 253.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for datagrove-1.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 c5bb22af11614c86d3eda4d571029f362a44638b59a09ca1171fd0942bdab115
MD5 0ebf8fed7f056e3f67ee8e05ea2a70af
BLAKE2b-256 0f0bdbf8cae7ebd5befd199615594e4aa4467f488849d80cde951f0deb3b837b

See more details on using hashes here.

Provenance

The following attestation bundles were made for datagrove-1.0.0b1-py3-none-any.whl:

Publisher: publish-datagrove.yml on e-lo/GMNSpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page