Python API

Public imports from datasetlint:

from datasetlint import (
    DatasetDiffReport,
    DatasetStats,
    Issue,
    LintConfig,
    LintReport,
    compare_datasets,
    compute_dataset_stats,
    lint_dataset,
)

Validate A Dataset

from datasetlint import lint_dataset

report = lint_dataset("examples/minimal_dataset")
print(report.summary())
print(report.passed)
print(report.count_by_severity())

Read A Report

print(report.to_json())
print(report.to_markdown())

for issue in report.issues:
    print(issue.severity, issue.check_name, issue.file, issue.row, issue.message)

Configure Rules

Pass a config dictionary, LintConfig, config file path, or None:

from datasetlint import LintConfig, lint_dataset

config = LintConfig(timestamp_gap_threshold_sec=0.25)
report = lint_dataset("examples/minimal_dataset", config=config)

report = lint_dataset(
    "examples/minimal_dataset",
    config={"max_pairwise_sync_gap_sec": 0.1},
    checks="sync",
)

checks accepts a comma-separated string or a list of group names:

lint_dataset("examples/minimal_dataset", checks="labels,sync")
lint_dataset("examples/minimal_dataset", checks=["labels", "sync"])

Stats

from datasetlint import compute_dataset_stats

stats = compute_dataset_stats("examples/minimal_dataset")
print(stats.frame_counts)
print(stats.inferred_rates_hz)
print(stats.to_markdown())

Diff

from datasetlint import compare_datasets

diff = compare_datasets("examples/minimal_dataset", "examples/bad_dataset")
print(diff.summary)
print(diff.to_json())

Adapters

from datasetlint.adapters import (
    detect_adapter,
    detect_adapters,
    get_adapter,
    list_adapters,
    load_dataset,
    validate_dataset,
)

detections = detect_adapters("examples/minimal_dataset")
adapter = get_adapter("examples/minimal_dataset", "auto")
metadata = adapter.load_metadata("examples/minimal_dataset")

coco_manifest = load_dataset("tests/fixtures/coco_dataset", adapter="coco")
kitti_report = validate_dataset("tests/fixtures/kitti_object", adapter="kitti")
auto_adapter = detect_adapter("tests/fixtures/nuscenes_mini_like")
all_adapters = list_adapters()

The native folder adapter feeds the existing lint rule engine. Other adapters produce normalized DatasetManifest objects and AdapterValidationReport objects for inspection, validation, and export.

Manifest objects expose to_dict() and to_json() helpers:

payload = coco_manifest.to_dict()
json_text = coco_manifest.to_json()