Package and extras
This checkout declares distribution lunartrace, version 0.2.0, published on PyPI. It
is not the older generation (0.1.x) published there under the same name. Version alone
does not identify the source: when you build from the repository, retain the commit identity.
Install contains the exercised installation commands;
Release status records the release standing.
Extras and imports
Section titled “Extras and imports”There are three installable extras. Each builds on the preceding one:
| Import or entry point | Required extra | Purpose |
|---|---|---|
lunartrace, lunartrace.projection | none | Typed projection models; only pydantic is required |
lunartrace.temporal | none | The one-call Study: study, load, frontiers, why, save and replay. See the one-call Study |
lunartrace.sites | none | Named sites, query boxes and registered event bases |
lunartrace.science.ode | none | Lunar ODE fetch and retained-source custody |
lunartrace.cli, the lunartrace command | none | Study, why, verify, replay and notebook on files |
lunartrace.science.slope_quality | science | DIRECT evaluation and canonical results |
lunartrace.science.study | science | Frozen witness, verified CAS inputs, result and receipt |
lunartrace.science.raster_projection | science | Per-cell projection and binary sidecars |
lunartrace.workbench | workbench | Local sidecar, including ROI evaluation and Figures |
| Workbench Lab notebooks | lab | marimo editor over Python results |
The one-call Study needs no extra: the facade uses only the standard library and pydantic.
lunartrace.temporal is loaded on first use, so import lunartrace stays light. The wheel
carries the retained pages of the 14 October 2026 Vikram run (_data/vikram-2026-10-14, about
600 KB), so the snapshot replays offline after installation. Exporting a notebook needs no
extra either; running one needs marimo (the lab extra).
science adds numpy, rasterio, shapely, pyproj, pyogrio and matplotlib.
workbench adds starlette and uvicorn; lab adds marimo. Installing an extra does
not distribute the source data, browser client or scientific admission.
The browser client is separately built from the private checkout with Bun.
Checkout dependency groups (dev, notebook, docs, oracle, paper, terrain,
spice) are not package extras. The default locked environment installs both
dev and notebook. Pip does not select those groups or consume the lock.
Entry points and typing
Section titled “Entry points and typing”The package installs one console script, lunartrace, for the temporal Study
(command line). The CLI guide lists the module entry points
for the Site01 tools and their arguments. The package ships a py.typed marker; annotations
are available to type checkers that honour it. Typing is not evidence that a
scientific method is admitted or that results reproduce on a different platform.
The Python API reference is generated from source docstrings, not maintained as a second API definition. Incorrect source docstrings are reported as residuals rather than silently corrected in generated pages.
Build and release boundary
Section titled “Build and release boundary”The Taskfile package smoke check builds an sdist and wheel and imports modules
from a clean environment. The packaging tests also install the built wheel and replay the
packaged snapshot offline. It does not replace scientific replay, independent
oracle comparison or a publication decision. The software licence is
BSD-3-Clause and the author is Krit Promsanuwong (see OWNER_PENDING.md); an
archive DOI and public release are still owner-pending (ARA-42).