fair-metadata-integration
Integrate and package all metadata into RO-Crate, linking to other metadata files.
Given a Bilayers workflow
specification and the image data an analysis consumed and produced, this package
writes a Workflow RO-Crate:
an ro-crate-metadata.json describing the run, alongside copies of the files it
describes.
Installation
pip install fair-metadata-integration
Requires Python 3.12 or newer. rocrate is
installed automatically.
Usage
from fair_metadata_integration import create_ro_crate
create_ro_crate(
dest_path="crate",
workflow_schema_filename="config.yaml",
input_path="input.ome.zarr",
output_paths=["output.ome.zarr"],
)
dest_path— directory the crate is written to, created if it does not exist.workflow_schema_filename— the Bilayersconfig.yamldescribing the workflow.input_path— the input image (an OME-Zarr directory or a TIFF file).output_paths— the images the workflow produced. Each gets its own parameter.gen_preview— write anro-crate-preview.htmlalongside the metadata (defaultTrue).
The source files are copied into the crate, so dest_path ends up
self-contained:
crate/
├── config.yaml
├── input.ome.zarr/
├── output.ome.zarr/
├── ro-crate-metadata.json
└── ro-crate-preview.html
ro-crate-preview.html is the human-readable
RO-Crate Website
for the crate, a static HTML page listing the crate and its data entities,
generated by rocrate. It is described in the metadata as a CreativeWork
about the root dataset, and is not part of the root dataset's hasPart.
What the crate contains
The workflow specification is the crate's mainEntity, typed as a
ComputationalWorkflow. The metadata descriptor declares RO-Crate 1.3, and the
root dataset declares the Workflow RO-Crate 1.1 profile:
{
"@id": "ro-crate-metadata.json",
"@type": "CreativeWork",
"about": { "@id": "./" },
"conformsTo": { "@id": "https://w3id.org/ro/crate/1.3" }
},
{
"@id": "./",
"@type": "Dataset",
"conformsTo": [
{ "@id": "https://w3id.org/workflowhub/workflow-ro-crate/1.1" }
],
"mainEntity": { "@id": "config.yaml" }
}
The workflow's programmingLanguage is a ComputerLanguage entity for the
Bilayers specification, identified by its Zenodo concept DOI
10.5281/zenodo.17652333, which
resolves to the latest release of the spec.
Inputs and outputs are modelled as FormalParameter entities carrying an
EDAM format IRI, from the file name: format_3915
for Zarr, format_3727 for OME-TIFF, format_3591 for TIFF, and PNG, JPEG, HDF5,
CSV, TSV, xlsx, JSON, YAML, XML and text. Folders (e.g. OME-Zarr) are Dataset
entities, files File entities, copied with their content. Each data entity
points back at the parameter it realises via exampleOfWork:
{
"@id": "input.ome.zarr/",
"@type": "Dataset",
"additionalType": "http://edamontology.org/format_3915",
"exampleOfWork": { "@id": "#input" }
}
The crate's JSON-LD context is extended with terms for describing biological
imaging metadata — biosample, specimen, organism_classification,
preparation_method, channel and others — so those properties can be added to
the crate's entities.
Development
git clone https://github.com/NL-BioImaging/fair-metadata-integration.git
cd fair-metadata-integration
pip install -e ".[test]"
pytest
Releasing
The package version comes from the git tag, via
setuptools-scm; there is no version
to bump in pyproject.toml.
- Optionally, do a dry run: run the Publish to PyPI workflow manually from
the Actions tab. It builds, tests and uploads a development version (e.g.
0.2.4.dev2) to TestPyPI. - Create a GitHub release with a new tag, e.g.
v0.2.4, on the commit to release. Publishing the release builds, tests and uploads that version to PyPI.
PyPI never accepts the same version twice. If a release fails after uploading, release a new version rather than reusing the tag.
License
MIT
Metadata
Release files for fair-metadata-integration 0.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| fair_metadata_integration-0.2.4.tar.gz | 11.5 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fair_metadata_integration-0.2.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.0 kB
Release files / fair_metadata_integration-0.2.4.tar.gz
| Download URL | fair_metadata_integration-0.2.4.tar.gz |
|---|---|
| Size | 11.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bd9ed51fcf8bb698b3532cb0db123e3dbfff630d824a8c8e1afcb1a53541e96a
|
|
BLAKE2b-256 checksum How to use checksums |
f8c722c634685f9ec199928c2f421062c88c14c4b49a473bfe9f2537c3eecabe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / fair_metadata_integration-0.2.4-py3-none-any.whl
| Download URL | fair_metadata_integration-0.2.4-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5515fbe42d6aafabc254c7d89bef0d23e1a5c14c3eb713bbd68c0dc125548535
|
|
BLAKE2b-256 checksum How to use checksums |
3a53c5c5cd598f042610ba2fce322fc5505a626987b7d879886738d36b8ab06a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logSecurity for fair-metadata-integration 0.2.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for fair_metadata_integration-0.2.4.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.