Skip to main content

homestead-ledger

Homestead · Affairs — module two. The homesteader keeping their own books.

A self-contained desktop module: it ships to a household who double-clicks it, so its store is embedded SQLite — a linked library, not a server (the face's 2026-08-04 "no listening socket" decision holds; SQLite binds no port). The record layer is the engine's: store.py is a thin binding — homestead.keep.store's adapter contract on a SQLite backing, in the ledger database. It pins the engine from PyPIhomestead-affairs>=0.1.0,<1.0 (the distribution name; import homestead is unchanged) — and shares the ~/.homestead root with homestead-law, because a household's affairs are one thing.

Mirror, not judge

The ledger reflects the household's money; it never authors a financial judgment and never edits a transaction. Concretely, that is the engine's record model applied to money:

  • Canonical = the household's own books — imported transactions, statements — read-only by type (I-6). The app has no write path to them.
  • Sidecar = the household's overlay — categorization, notes, budget envelopes, a confirmed merchant name. This is where the app writes.
  • Money amounts tied to an account are L4; account numbers / SSNs are L5; due-dates and schedules are L1/L2 (see the engine's rung model). The engine enforces this at the storage boundary; a corrupt or unclassified row reads L5 on the way out.

The shared Postgres engine on the fleet side is a sync target reached through the egress gate — never a runtime dependency of the shipped app. Sync is an S4 egress: an L5 record never crosses, and what lands in the shared store is only what the household chose to expose.

Status: bite 0 — the seat is bound. The store binding (homestead.keep.store on a SQLite ledger db), a no-egress AST guard over this package (I-17 — a money ledger must never dial out), CI (cold checkout, engine from PyPI, three OSes), and the build plan (docs/build-plan.md). The books, the "what's due" queue, CSV import, and the app land in the bites that follow.

The method

Test-first, as in homestead: every claim is a check somebody can run. From a cold checkout — the engine (homestead.keep) resolves from PyPI as homestead-affairs, no sibling checkout needed:

pip install -e .    # pulls homestead-affairs (homestead.keep) from PyPI
pytest -q

The full build plan — the reuse map, the bite order, the invariants that carry from the engine and the ones new to money — is in docs/build-plan.md.

Apache-2.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

homestead_ledger-0.1.1.tar.gz (101.0 kB view details)

Uploaded Source

Built Distribution

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

homestead_ledger-0.1.1-py3-none-any.whl (54.5 kB view details)

Uploaded Python 3

File details

Details for the file homestead_ledger-0.1.1.tar.gz.

File metadata

  • Download URL: homestead_ledger-0.1.1.tar.gz
  • Upload date:
  • Size: 101.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for homestead_ledger-0.1.1.tar.gz
Algorithm Hash digest
SHA256 50e37508b8674f74a67f51fee38e2d8e75e6fe3985a2f3e36658db0332bf8ef2
MD5 970810436608b1aeaa4134d25ecf40a8
BLAKE2b-256 3b3cf20fb00d876aad3d8da1b57da7bb2184095e45332a8d1ca65c5e9d7685b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for homestead_ledger-0.1.1.tar.gz:

Publisher: release.yml on homestead-affairs/homestead-ledger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file homestead_ledger-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for homestead_ledger-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dcf3ff1c792be4649e8a8b024e77580f76438a8fdf3524a6719f6d26297c1921
MD5 c493f7706db7c39969d6df1f75331e81
BLAKE2b-256 dd5b4f193ca90abcef95fcf36c9879fcad3efad2e442b29c8cee46b4ff4d8cf7

See more details on using hashes here.

Provenance

The following attestation bundles were made for homestead_ledger-0.1.1-py3-none-any.whl:

Publisher: release.yml on homestead-affairs/homestead-ledger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

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