Skip to main content

croissant-baker

Croissant Baker

CI Python 3.10+ uv License: MIT PyPI arXiv NeurIPS 2026 PRs Welcome

Automatically generate Croissant JSON-LD metadata for ML datasets — e.g. for PhysioNet, NeurIPS Datasets & Benchmarks submissions, or any platform that benefits from standardized dataset metadata.

📖 Documentation


Installation

pip install croissant-baker

or with uv:

uv add croissant-baker

Quick start

croissant-baker \
  --input /path/to/dataset \
  --creator "Your Name,you@example.com" \
  --description "My ML dataset" \
  --license "CC-BY-4.0" \
  --output my-dataset-croissant.jsonld

Or try with the bundled MIMIC-IV Demo test data:

git clone https://github.com/MIT-LCP/croissant-baker.git && cd croissant-baker
uv sync --group dev
croissant-baker \
  --input tests/data/input/mimiciv_demo/physionet.org/files/mimic-iv-demo/ \
  --creator "Alistair Johnson,aewj@mit.edu,https://physionet.org/" \
  --creator "Tom Pollard,tpollard@mit.edu,https://physionet.org/" \
  --name "MIMIC-IV Clinical Database Demo" \
  --description "Demo subset of MIMIC-IV containing 100 de-identified patients from Beth Israel Deaconess Medical Center" \
  --url "https://physionet.org/content/mimic-iv-demo/2.2/" \
  --license "https://opendatacommons.org/licenses/odbl/1-0/" \
  --rai-data-biases "Single-site cohort from a US academic medical centre" \
  --rai-data-limitations "Demo subset limited to 100 patients" \
  --output mimic-iv-demo-croissant.jsonld
croissant-baker validate mimic-iv-demo-croissant.jsonld

Supported formats

Format Extensions Notes
CSV / TSV .csv, .tsv Streaming with automatic type inference
Parquet .parquet Partitioned datasets supported
Spreadsheets .xlsx, .xlsm, .xls One record set per sheet, where the sheet is one table; sheets that are not are named
FHIR .ndjson, .json (Bundle) NDJSON bulk export and JSON Bundle
JSON / JSONL .json, .jsonl Arrays, single objects, and JSON Lines
WFDB .hea + .dat / .atr PhysioNet waveform data
Images .png, .jpg, .tiff, .btf, .bmp, .gif, .webp Dimensions and format; BigTIFF via tifffile; OME-XML header fields for OME-TIFF
DICOM .dcm, .dicom Modality, geometry, study/series UIDs via pydicom (header only)
NIfTI .nii Spatial dims, voxel spacing, TR for fMRI via nibabel (header only)
GEO SOFT .soft NCBI GEO family exports: attribute names, sample characteristic keys, data table columns
HDF5 .h5, .h5ad, .hdf5 Dataset paths, dtypes and shapes via h5py (structure only); AnnData and 10x table columns where the layout is recognised

Any of these may arrive wrapped in .gz, .bz2 or .xz — compression is resolved before the format is read, so cells.parquet.gz is described exactly as cells.parquet is. WFDB is the exception: a record spans several files located by path, so a compressed .hea is reported rather than described. .zip, .tar and .tgz are reported as archives, not opened. Files nothing describes are reported with a reason rather than skipped in silence.

Key features

  • Automatic type inference for all supported formats
  • RAI metadata via --rai-* CLI flags or --rai-config rai.yaml
  • Validation against the Croissant spec via mlcroissant
  • Dry-run mode, include/exclude glob filters, multiple creators

See the documentation for full CLI reference, examples, and RAI configuration.

Contributing

See CONTRIBUTING.md for guidelines and DEVELOPMENT.md for setup, testing, releases, and how to add new file handlers.

Citation

Croissant Baker was accepted at NeurIPS 2026 (Evaluations & Datasets track). The camera-ready version is coming soon. Until then, please cite our arXiv preprint:

@misc{attrach2026croissantbakermetadatageneration,
      title={Croissant Baker: Metadata Generation for Discoverable, Governable, and Reusable ML Datasets},
      author={Rafi Al Attrach and Rajna Fani and Sebastian Lobentanzer and Joan Giner-Miguelez and Debanshu Das and Varuni H. K. and Nobin Sarwar and Rajat Ghosh and Anwai Archit and Surbhi Motghare and Christina Conrad Parry and Luis Oala and Lara Grosso and Joaquin Vanschoren and Steffen Vogler and Sujata Goswami and Eric S. Rosenthal and Marzyeh Ghassemi and Matthew McDermott and Tom Pollard},
      year={2026},
      eprint={2605.15079},
      archivePrefix={arXiv},
      primaryClass={cs.LG},
      url={https://arxiv.org/abs/2605.15079},
}

License

MIT License - see LICENSE file.

Metadata

Release files for croissant-baker 0.6.2

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

Built distribution (wheel)

Table of built distributions (wheels) for croissant-baker 0.6.2
File Interpreter ABI Platform
croissant_baker-0.6.2-py3-none-any.whl Python 3 none any Details

Release files / croissant_baker-0.6.2-py3-none-any.whl

Download URL croissant_baker-0.6.2-py3-none-any.whl
Size 157.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cddddedae876bced976a31424668d661c6a2ffadb4eae658e8dc1280c54c13ea
BLAKE2b-256 checksum
How to use checksums
b58d6e58d3099564f81a6838c59431967047df85fb73f8a2b86e0356dc3e0063
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.8.0

1 release file

0.7.0

1 release file

This release

0.6.2 This release

1 release file

0.6.1

1 release file

0.6.0

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

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