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()