Skip to main content

acatome-store

Persistent storage, deduplication, metadata queries, and semantic search for scientific paper bundles.

Features

  • SQLAlchemy ORM — portable across SQLite, Postgres, MySQL
  • Refs + Papers split — identity table (refs) separate from ingested content (papers)
  • Citation graph — directed citing → cited edges, works for ingested + stub papers
  • Supplements — ingest supplementary PDFs with scoped block retrieval
  • Retractions — flag papers as retracted with notes
  • Vector search — ChromaDB (default) or pgvector (zero text duplication)
  • CLI — acatome-store command for ingest, reingest, query, retract, and stats
  • Schema management — reset_schema() and reingest --drop for clean rebuilds

Installation

uv pip install -e .

With Postgres support:

uv pip install -e ".[postgres]"

Usage

from acatome_store import Store

store = Store()
ref_id = store.ingest(bundle_path)
paper = store.get(ref_id)
results = store.search_text("transformer attention", top_k=5)
# hits include paper info, block summaries, and text

CLI

acatome-store ingest /path/to/bundle.acatome    # single bundle
acatome-store ingest /path/to/dir/               # directory of bundles
acatome-store reingest                            # re-ingest all from ~/.acatome/papers/
acatome-store reingest --drop                     # drop schema + re-ingest (confirm prompt)
acatome-store reingest --path /other/dir          # custom bundle directory
acatome-store stats
acatome-store search "CO2 capture"
acatome-store list
acatome-store info doi:10.1234/example
acatome-store retract doi:10.1234/fake --note "Fabricated data"

Schema Reset

If the database schema drifts from the model (e.g. after upgrading acatome-store), use reingest --drop to drop all tables, recreate from the current SQLAlchemy model, and re-ingest all .acatome bundles. No data is lost since bundles are the source of truth.

acatome-store reingest --drop
# prompts for confirmation, then:
# 1. Drops all tables (refs, blocks, papers, links, etc.)
# 2. Recreates schema from current model
# 3. Re-ingests all bundles from ~/.acatome/papers/

Programmatically:

store = Store()
store.reset_schema()  # drop + recreate tables

Testing

uv run python -m pytest tests/ -v

License

LGPL-3.0-or-later — see LICENSE.

Metadata

Release files for acatome-store 1.0.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 acatome-store 1.0.0
File Size Uploaded Provenance
acatome_store-1.0.0.tar.gz 59.3 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for acatome-store 1.0.0
File Interpreter ABI Platform
acatome_store-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 99.8 kB

Release files / acatome_store-1.0.0.tar.gz

Download URL acatome_store-1.0.0.tar.gz
Size 59.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f37523cdbf8d45aa8bfb4b133a301458bfd65330952b519f4b7f4de788607dea
BLAKE2b-256 checksum
How to use checksums
5a796ed100c73ec865fbf4c18a203653d7ea3ca409f92ffbc6e3a71936c21ab5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 Apr 24, 2026.

Transparency log

Release files / acatome_store-1.0.0-py3-none-any.whl

Download URL acatome_store-1.0.0-py3-none-any.whl
Size 40.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7b9a96a9146f97f7f20775136b20a1dfeca0a9c462d722f32e22a2ed60117705
BLAKE2b-256 checksum
How to use checksums
f8103f19b29a752e98c578d6e2199f2be662cdc36f1fe09e4b55ba7a2809c16e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 Apr 24, 2026.

Transparency log

Security for acatome-store 1.0.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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for acatome_store-1.0.0.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 Apr 24, 2026.

Transparency log

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