Skip to main content

Documentation

STOMS

STOMS (Storage Tool of Minor Significance) is an SQLite-first immutable, provenance-first ledger for ASE structures and their numerical evaluations. The public library is stoms.atomsledger.

SQLite and PostgreSQL are supported backends; SQLite is the portable archive format. Structures, evaluations, trajectories, stored queries, and aggregations are immutable; post-ingestion tags are append-only annotations.

PostgreSQL

PostgreSQL 16 or newer is a supported operational backend. SQLite remains the sole portable archive format. Install the optional driver dependency:

uv sync --extra postgres --dev

Construct a ledger from a normal DSN and a schema it exclusively owns:

from stoms.atomsledger import AtomsLedger, PostgresRepository

ledger = AtomsLedger(
    PostgresRepository("postgresql://user:password@host/database", schema="project")
)

PostgresRepository creates and validates its tables in the selected schema. Do not share that schema with unrelated applications. Export a portable SQLite archive with ledger.export_database("archive.atomsledger", overwrite=True). See the PostgreSQL operational ledger guide for project setup and bidirectional SQLite synchronization.

Integration tests read STOMS_POSTGRES_TEST_DSN. The DSN must identify a disposable database; each test creates and drops its own schema.

Start the local PostgreSQL 16 test service with Docker (Engine + the Compose plugin):

docker compose up -d postgres
export STOMS_POSTGRES_TEST_DSN='postgresql://stoms:stoms@localhost:54329/stoms_test'
uv run pytest tests/postgres

If that fails with a permission error connecting to the Docker socket, your user cannot talk to the Docker daemon yet. Adding yourself to the docker group (sudo usermod -aG docker $USER, then a full logout/login) is the usual fix, but it does not always take effect right away; sudo docker compose up -d postgres works as a reliable fallback.

The Compose database uses in-memory storage and test-only credentials. Stop it after testing with docker compose down; do not use this service for data that must persist.

Install

Add STOMS as a dependency:

uv add stoms
# or
pip install stoms

Optional extras: stoms[postgres] and stoms[vasp].

Development setup

To work on STOMS itself:

uv sync --dev
uv run pytest

Install the optional VASP parser with:

uv sync --extra vasp --dev

Documentation

The documentation is ready for MkDocs publication:

Serve it locally:

uv sync --group docs
uv run --group docs mkdocs serve

License

Copyright 2026 Ralf Wanzenböck.

STOMS is licensed under the Apache License 2.0; see LICENSE.

The structure viewer of stoms serve uses the Jmol element colours and the covalent radii of B. Cordero et al., "Covalent radii revisited", Dalton Trans. (2008) 2832–2838, doi:10.1039/B801115J.

Metadata

Release files for stoms 0.3.0

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

Source distribution (sdist)

Source distribution for stoms 0.3.0
File Size Uploaded Provenance Actions
stoms-0.3.0.tar.gz 319.9 kB Without provenance Details for stoms-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for stoms 0.3.0
File Interpreter ABI Platform Actions
stoms-0.3.0-py3-none-any.whl Python 3 none any Details for stoms-0.3.0-py3-none-any.whl

Total release size: 432.1 kB

Release files / stoms-0.3.0.tar.gz

Download URL stoms-0.3.0.tar.gz
Size 319.9 kB
Tags Source
SHA-256 checksum
How to use checksums
62cfb3ec125ba3290b8d0f6ffc6e64ac7ffe84b3843dc5be9e1f8550b74493ff
BLAKE2b-256 checksum
How to use checksums
692647ab6fac913bf1cec2523ed12b1ddd605fedeca68a3cd049fd67afa4b0c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","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":null}

Release files / stoms-0.3.0-py3-none-any.whl

Download URL stoms-0.3.0-py3-none-any.whl
Size 112.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ca31d8fa8695f9e1f0d309bcd5ff3d609b71566b88576417290713883abb35c
BLAKE2b-256 checksum
How to use checksums
f2de3e3db3ae80f2e1bfc91d03e459c8a6b5a66ee4598eca31338cbd9d7866f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","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":null}

Security for stoms 0.3.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

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