Skip to main content

Documentation

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:

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

stoms-0.2.0.tar.gz (278.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stoms-0.2.0-py3-none-any.whl (72.6 kB view details)

Uploaded Python 3

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

Hashes for stoms-0.2.0.tar.gz
Algorithm Hash digest
SHA256 54758155e84bc1b7dff159e351cd8900a6d79aa0fd39ad4724fbd88942d15b8e
MD5 04b11d8405982dc01db64eec569b3813
BLAKE2b-256 eb6fe7bd2916542bcaa1cd867a2a4b5202230765c9b4924b147143a28fc14cd2

See more details on using hashes here.

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

Hashes for stoms-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 57e32284c8c7c9273830322f9cfd34f03e3a7c6f9514d0310815375fd30b0478
MD5 7b13da4740cde594d931a19f78bb3f3d
BLAKE2b-256 fee17ddd88f6aa7e4db09f3eccdf384510d974998c1ceac75ae448765b1f40d3

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

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