Models for REMBI and MIFA metadata specifications for FAIR bioimaging data.
Project description
rembi-mifa
Pydantic-based python models for REMBI and MIFA metadata for FAIR bioimaging data.
Usage
See examples/ directory.
Notes
The original specs lack some documentation and have a few other quirks. The implementation here may differ from the intended structure in these cases.
- The REMBI specification refers to but does not define the
AnnotationTypetype; here we use the MIFAAnnotationTypeenum. - the REMBI specification refers to the
Licensetype but it is empty; there is no MIFA type of the same name (althoughLicenseTypeis close). We just accept a string, and recommend using an SPDX identifier.
This implementation is opinionated on certain serialisation/deserialisation features:
- Optional list fields are omitted if empty; optional list fields which are omitted are deserialised to empty lists.
- Date and datetime values are deserialised from RFC 3339 strings or stringified seconds (or milliseconds, depending on the value) since the unix epoch, and serialised to RFC 3339 strings (see the pydantic docs for more details)
- ORCiD IDs may be parsed as only the identifier, but are normalised to URLs; the checksum is also validated
- in a few cases, the specification requires a list but does not state that the list must be non-empty, so this is not validated
- the
keywordsfield ofrembi.Studyis probably supposed to represent a delimited list, but it's not specified, so it's left as a plain string here
Contributing
Use the justfile for most common development tasks.
Releases should be published from CI.
just bump minor will
- run various tests
- check that your working tree is clean
- check you are on the
mainbranch - bump the minor project version
- commit that change
- tag that commit
- push the changes and tag
Then CI will deploy to PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rembi_mifa-0.1.2.tar.gz.
File metadata
- Download URL: rembi_mifa-0.1.2.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36bddf3890ad79f4e0c56092305c4013a0165a7fc6e56f22a09cae2a6a70c1f9
|
|
| MD5 |
dbc6ef06c3014e8853645651de11a8c0
|
|
| BLAKE2b-256 |
8d00842bd372f7bec705ca430ede65a70ae1afbaffd3a297432948e6ddac7000
|
File details
Details for the file rembi_mifa-0.1.2-py3-none-any.whl.
File metadata
- Download URL: rembi_mifa-0.1.2-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2a0f157ceafeb695b7655e74e2b4f63cf8aca22fd2356ac4e0b4d0261bdff65
|
|
| MD5 |
bc04f8a4c7a6da6a6287d5c4a423bada
|
|
| BLAKE2b-256 |
8ecf98455b5b6d4600b2ae244c81023e104607e2028c01126bce12b297ef8461
|