DatasetLint¶
DatasetLint validates local robotics and physical AI datasets before they enter training, evaluation, or analysis pipelines.
It is intentionally small: local files in, deterministic report out. Use it to catch schema drift, broken references, timestamp problems, label issues, calibration mistakes, and adapter ingestion failures while the dataset is still cheap to fix.
Install status
DatasetLint currently documents source installs from this repository. Do not
use pip install datasetlint as the default path until a public package
release exists.
First Five Minutes¶
git clone https://github.com/gagandeepreehal/datasetlint.git
cd datasetlint
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
python -m pip install -e ".[dev,docs]"
datasetlint --version
datasetlint examples/minimal_dataset
datasetlint examples/bad_dataset --format json
examples/minimal_dataset should pass. examples/bad_dataset should fail and
show the issue fields you will see in real projects.
Choose Your Path¶
| Goal | Read This | First Command |
|---|---|---|
| Install and run the examples | Getting Started | datasetlint examples/minimal_dataset |
| Validate the native CSV/JSON folder format | Dataset Format | datasetlint lint DATASET_PATH |
| Tune checks or severities | Configuration | datasetlint DATASET_PATH --config DATASET_PATH/datasetlint.yaml |
| Inspect MCAP, ROS bag, Argoverse 2, LeRobot, COCO, KITTI, or other formats | Adapters | datasetlint inspect DATASET_PATH --adapter auto |
| Save JSON, Markdown, or HTML artifacts | Reports | datasetlint report DATASET_PATH --out datasetlint-report.json |
| Fix a failing run | Troubleshooting | datasetlint DATASET_PATH --format json |
| Add a CI gate | CI Templates | datasetlint DATASET_PATH --fail-on warning |
| Call DatasetLint from Python | Python API | from datasetlint import lint_dataset |
| Work on DatasetLint itself | Development | make check |
What You Get¶
- Python 3.10+
- local files in, report out
- CLI and importable Python API
- no ROS, simulator, GPU, cloud, or model dependency
- native support for the folder CSV/JSON dataset format
- adapter manifests for common robotics and vision dataset formats
- JSON output and stable exit codes for CI
Documentation Map¶
| Section | Best For |
|---|---|
| Start | New users installing from source and running the examples |
| Use DatasetLint | Dataset owners configuring checks, reports, stats, and diffs |
| Integrate | CLI users, Python callers, CI maintainers, and adapter users |
| Maintain | Contributors changing rules, adapters, docs, or release process |
Common Outputs¶
| Need | Command |
|---|---|
| Human-readable terminal report | datasetlint DATASET_PATH |
| JSON for automation | datasetlint DATASET_PATH --format json |
| Markdown report | datasetlint DATASET_PATH --format markdown |
| Static HTML report | datasetlint DATASET_PATH --format html > report.html |
| File artifact with inferred format | datasetlint report DATASET_PATH --out report.json |
| Dataset distribution summary | datasetlint stats DATASET_PATH |
| Regression check between folders | datasetlint diff OLD_DATASET NEW_DATASET --fail-on-regression |
Exit Codes¶
| Code | Meaning |
|---|---|
0 |
Command completed and did not meet the configured failure threshold |
1 |
Validation failed, adapter validation failed, or diff regressions were found |
2 |
Invalid command, unknown check or adapter, or invalid config |
Current Status¶
DatasetLint v0.1 supports deep rule validation for its native folder format and normalized adapter manifests for generic folders, COCO, KITTI, Argoverse 2, LeRobot, nuScenes, Waymo, ROS bag, MCAP, Hugging Face, and plugin-provided datasets.
Waymo, ROS bag, MCAP, and Hugging Face default to lightweight index/cache
manifests. Install the matching extra and use --deep when you need
parser-backed metadata or sampled Hugging Face row diagnostics.