Skip to content

Reference

This page lists what the facade exports. The signature, arguments and exceptions of each name are in the generated API reference, which is built from the source docstrings (uv run --group docs python tools/gen_api_docs.py).

NameKindWhat it is
study(*, site, event, products, archive=None, box=DEFAULT_HALF_BOX_DEG)functionCompile a Study.
load(path, *, sources=None)functionRead a saved Study file and verify it.
packaged_archives()functionThe snapshot names that ship inside the package, for archive=. Today ("vikram-2026-10-14",).
StudyclassA compiled Study, frozen.
PairViewclassOne pair: pair_id, pre, post, deltas, gaps.
FrontierclassA read-only sequence of PairView with name, objectives, comparisons, witnesses.
WhyclassThe answer to why; str() of it is one sentence. Fields: pair_id, frontier, on_frontier, witness, deltas, witness_deltas, everywhere, and missing (objectives the pair could not be evaluated on; then it is neither on the frontier nor beaten).
IntegrityErrorexceptionA record that no longer hashes to its study_digest. A ValueError.
FRONTIER_NAMESconstant("angles", "angles+resolution", "angles+time", "all").
DEFAULT_HALF_BOX_DEGconstant(0.005, 0.015), the query box half-width in latitude and longitude.
MemberReturns
recordThe digest-covered record, as a read-only mapping.
digest"sha256:...", the record’s study_digest.
summaryCounts: observations, pre, post, pairs and the frontier sizes.
observations, pairsTuples of read-only rows.
pair(pair_id)A PairView. KeyError if unknown.
frontier(name)A Frontier. KeyError lists the valid names.
why(pair_id, frontier="angles")A Why.
limitsThe four limitations, verbatim from the record.
anatomy()The seven sections as an ordered dict: what_ran, from_which_bytes, around_when, on_what, why_these, where_it_stops, has_anything_moved.
source_mode"live" or "retained".
sourcesThe retained bytes, or None.
save(path, *, sources=False)The written Path.
verify()True, or raises IntegrityError.
replay()A new Study compiled from the retained bytes.
to_notebook(path, *, study_path=None)The notebook Path.

anatomy() adds nothing to the record. Each section is a view over keys the record already has.

NameWhat it is
SiteA named site: name, lat, lon, and its registered bases.
VIKRAM, SITESThe registry. Its four event bases carry rationales that cite their anchors.
get_site(name), find_site(lat, lon)Look a site up by name or by exact centre.
query_for(...)The Lunar ODE query for a box around a centre.
DEFAULT_HALF_BOX_DEG(0.005, 0.015).

Fetch and custody of the Lunar ODE source: fetch_pages (live, in memory), fetch (live, to a directory), load_retained, write_retained, source_record (which checks every page against its receipt digest) and rows. The method itself, lunartrace.science.temporal, is unchanged from 0.1.

main(argv=None) runs the lunartrace command and returns its exit status; summary_line(study) formats 108 products · 2,340 pairs · frontiers 13/56/133/342. See Command line.