Skip to main content

ShapeWitness

CI Python 3.10+ MIT license Runtime dependencies: 0

Small JSONL fixtures that show the shapes your code needs to handle.

head -n 20 often gives you twenty happy-path rows. ShapeWitness keeps the records with missing fields, nulls, empty collections, and mixed types, then explains why each row was selected.

  • Real records: original bytes, numeric precision, whitespace, and line endings
  • Explainable coverage: observed structural features, uncovered gaps, source hashes
  • Reproducible and local: deterministic selection, bounded disk spooling, no network calls

Install

Python 3.10+ with SQLite support. Install from a checkout:

python -m pip install .

Or directly from GitHub:

python -m pip install 'git+https://github.com/agent-axiom/shapewitness.git'

Pin a reviewed commit for reproducible source installations. See release guidance.

Ten-second demo

From a checkout:

shapewitness examples/events.jsonl -n 4 --report coverage.json > fixture.jsonl
# shapewitness: 4/6 rows; 19/19 observed features; complete

Lines 1, 3, 4, and 5 survive. See the input, selected fixture, and explanation. Use --require-complete to fail CI when the selected rows leave observed features uncovered.

I want to… Start here
Use the CLI, pipes, or Python API Usage
Build pytest fixtures, test ETL, or reproduce an importer bug Recipes
Inspect a reproducible head/random comparison Synthetic benchmark
Build a wheel or prepare a release Release readiness
Understand null, missing, arrays, and tie-breaking Feature model
Verify selected bytes and coverage explanations Provenance
Check strict input rules, resource limits, and privacy Limits & privacy
Understand the implementation or contribute Architecture · Development
Work on this repository with an agent Agent guide
Compare the scope with JSONLKit and jselect Related tools

Know the boundaries: this is greedy structural coverage, not a statistically representative sample, an optimal minimum set, or a schema guarantee. Selected rows retain private data; reports can expose property names. Details.

Documentation index · Contributing · Security · Changelog · MIT license

Metadata

Release files for shapewitness 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for shapewitness 0.1.0
File Size Uploaded
shapewitness-0.1.0.tar.gz 55.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for shapewitness 0.1.0
File Interpreter ABI Platform
shapewitness-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 68.4 kB

Release files / shapewitness-0.1.0.tar.gz

Download URL shapewitness-0.1.0.tar.gz
Size 55.9 kB
Tags Source
SHA-256 checksum
How to use checksums
879fb8add05431035d44b3006ee2dff24a115c040f926a50956426c2efbbc079
BLAKE2b-256 checksum
How to use checksums
0b249c3b417cc3e979a33ee96df8830dd12f2d08a92fd913a45a924e6caa5c64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / shapewitness-0.1.0-py3-none-any.whl

Download URL shapewitness-0.1.0-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
564c4a7b9571ae5020653e5913b24286e2728bbe97a0aaa214555d0f8df0ffb0
BLAKE2b-256 checksum
How to use checksums
7f67bc871b54ca69dd45a7db5b0bbc4a213a03fb49af8737d1998ad7ff792aaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page