STOMS
STOMS 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:
- Overview
- Researcher quick start
- Getting started
- Use cases and boundaries
- Public API
- VASP parser
- Limitations
Serve it locally:
uv sync --group docs
uv run --group docs mkdocs serve
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 stoms-0.2.0.tar.gz.
File metadata
- Download URL: stoms-0.2.0.tar.gz
- Upload date:
- Size: 278.1 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54758155e84bc1b7dff159e351cd8900a6d79aa0fd39ad4724fbd88942d15b8e
|
|
| MD5 |
04b11d8405982dc01db64eec569b3813
|
|
| BLAKE2b-256 |
eb6fe7bd2916542bcaa1cd867a2a4b5202230765c9b4924b147143a28fc14cd2
|
File details
Details for the file stoms-0.2.0-py3-none-any.whl.
File metadata
- Download URL: stoms-0.2.0-py3-none-any.whl
- Upload date:
- Size: 72.6 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57e32284c8c7c9273830322f9cfd34f03e3a7c6f9514d0310815375fd30b0478
|
|
| MD5 |
7b13da4740cde594d931a19f78bb3f3d
|
|
| BLAKE2b-256 |
fee17ddd88f6aa7e4db09f3eccdf384510d974998c1ceac75ae448765b1f40d3
|