nomad-fsspec
An fsspec filesystem for the raw data of NOMAD, the materials science repository. It is read-only.
import fsspec
fs = fsspec.filesystem("nomad") # https://nomad-lab.eu/prod/v1 by default
fs.ls("/") # public datasets
fs.ls("/wWgAnNZNQxOHLf97H62dgw", detail=False) # the uploads of one dataset, by id
fs.upload_names(["Xa2LB__ESiKu-odRBPJhjA"]) # {"Xa2LB__ESiKu-odRBPJhjA": "nomad-demo-data.zip"}
fs.get_file(
"/wWgAnNZNQxOHLf97H62dgw/Xa2LB__ESiKu-odRBPJhjA/nomad-demo-data/BrK_svSe/TBCC006.ABC/vasprun.xml.relax2",
"vasprun.xml",
)
Paths are /<dataset id>/<upload id>/<path inside the upload>, and only public data is listed.
Datasets have their names in display_name. Uploads inside a dataset are listed by id, since
naming all uploads of a large dataset at once makes NOMAD time out; upload_names looks names up
25 at a time and keeps them, and search_uploads finds the ids of uploads by name.
With a token, the top level lists your uploads and those shared with you, published or not, as
NOMAD's uploads page does. Paths are then /<upload id>/<path inside the upload>:
fs = fsspec.filesystem("nomad", token="...")
fs.ls("/") # your uploads, with their names in display_name
A personal access token with the
uploads:read scope is enough. To use a NOMAD Oasis, pass base_url:
fs = fsspec.filesystem("nomad", base_url="https://my-oasis.example.org/nomad-oasis")
NOMAD's rate limits (HTTP 429 and 503) are retried. Redirects are not followed: a base URL that redirects is reported with the address it redirects to.
Development
uv sync
uv run pytest -m "not live" # unit tests
uv run pytest -m live # a few calls to nomad-lab.eu
uv run ruff check . && uv run ruff format --check . && uv run mypy src
License
MIT
Metadata
Release files for nomad-fsspec 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nomad_fsspec-0.2.0.tar.gz | 13.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nomad_fsspec-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.3 kB
Release files / nomad_fsspec-0.2.0.tar.gz
| Download URL | nomad_fsspec-0.2.0.tar.gz |
|---|---|
| Size | 13.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f75b372f7e8bc47b3cf45954ec750d229b2a27c1d910887c59cc9905f6f65147
|
|
BLAKE2b-256 checksum How to use checksums |
b2be02d1e7a60932db29243b9e29c3ab4e58ab649b1cde8f12e782208b31ca3c
|
| 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 12, 2026.
Transparency logRelease files / nomad_fsspec-0.2.0-py3-none-any.whl
| Download URL | nomad_fsspec-0.2.0-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
72e20b192842d5985804e39fab6fff5dea82cf410a3cd88451f8f58e8e51cacd
|
|
BLAKE2b-256 checksum How to use checksums |
456f38de75719a463ad8a73e0dc770040f4bbdb3c6a27a60866b9ab1a2e9f21e
|
| 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 12, 2026.
Transparency log