pseudohub
Fetch pseudopotential files from Pseudo-Dojo (and, eventually, other providers) — usable as a Python library or a CLI.
Install
pip install -e .
Library usage
from pseudohub import get_pseudo, get_pseudo_table, get_hints
# nc, sr, pbe, standard, upf, newest version, cached in the default
# per-user cache directory
path = get_pseudo("Si")
path = get_pseudo(
14, kind="paw", generator="pbesol", accuracy="stringent",
format="psp8", cache_dir="/scratch/me/pseudos",
)
# also save (not just cache) a copy somewhere specific -- a directory
# keeps the original filename, a full path lets you rename
get_pseudo("Si", output=".") # ./Si.upf
get_pseudo("Si", output="Si.upf") # explicit filename, any directory
# recommended plane-wave energy cutoff (Ha)
hints = get_hints("Si", level="high")
print(hints["ecut"])
# full table archive for every element
table_dir = get_pseudo_table(kind="nc", generator="pbe", accuracy="standard")
An invalid parameter combination raises InvalidParameterError with
suggestions for the closest real option:
get_pseudo("Fe", kind="paw", generator="pw", accuracy="stringent")
# InvalidParameterError: No Pseudo-Dojo table for kind='paw', relativity='sr',
# version=None, generator='pw', accuracy='stringent'.
# did you mean one of:
# - paw_pw_standard
CLI usage
pseudohub get Si --kind nc --generator pbesol --accuracy stringent --format psp8
pseudohub table --kind paw --generator pbe --accuracy standard --table-format upf
pseudohub hints Si --level high
pseudohub get La --version 04-3plus --format upf # lanthanide semicore table
Global flags (get/table/hints all accept them, placed before the
subcommand): --provider, --cache-dir, --no-cache, --force.
Caching
Downloads are cached by default in a per-user cache directory (via
platformdirs, e.g. ~/.cache/pseudohub on Linux), so repeated calls
across projects reuse files instead of re-downloading. Use
cache_dir=/--cache-dir to point at your own location (e.g. shared HPC
scratch space), or cache=False/--no-cache to skip caching entirely.
Development
pip install -e ".[test]"
pytest
Tests are fully offline — network calls are mocked at the requests.get
seam in pseudohub.cache.
Adding a new provider
- Create
src/pseudohub/providers/<name>.pywith a class implementingpseudohub.providers.base.Provider(get_pseudo, optionallyget_table/get_hints). - Register it in
src/pseudohub/providers/__init__.py'sPROVIDER_REGISTRY. - It's now available via
get_pseudo(..., provider="<name>")andpseudohub --provider <name> get .... Provider-specific parameters don't need to match any other provider's —get_pseudo's**kwargspass straight through, and an unsupported kwarg raises a normalTypeError.
Metadata
Release files for pseudohub 0.1.1
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 | Actions |
|---|---|---|---|---|
| pseudohub-0.1.1.tar.gz | 16.0 kB | With provenance | Details for pseudohub-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pseudohub-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for pseudohub-0.1.1-py3-none-any.whl |
Total release size: 31.0 kB
Release files / pseudohub-0.1.1.tar.gz
| Download URL | pseudohub-0.1.1.tar.gz |
|---|---|
| Size | 16.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6d76e44a2888580acdb5e0acae2ffb8e3a2008a515767603027a0bb3cc51561e
|
|
BLAKE2b-256 checksum How to use checksums |
633b215358214994877e394d858e893b97e95378db76e61a1c25c342b70ca896
|
| 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 Jul 30, 2026.
Transparency logRelease files / pseudohub-0.1.1-py3-none-any.whl
| Download URL | pseudohub-0.1.1-py3-none-any.whl |
|---|---|
| Size | 14.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d0faa512b6c6d628ad01bce26d5d8d6afaf2c32019fe3ffbb0ca15e937436c6a
|
|
BLAKE2b-256 checksum How to use checksums |
e2788a4f0739caf39191787fa37f10ad397c5f2accb94852d99ce4621cfeda9f
|
| 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 Jul 30, 2026.
Transparency logSecurity for pseudohub 0.1.1
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 pseudohub-0.1.1.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 Jul 30, 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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.