apps/means
myMeans
Double-Entry Accounting in Python
myMeans is a double-entry accounting library in Python based on ledger-cli, the C++ precursor to Beancount.

What it shows
What it is and what it demonstrates.
myMeans is a double-entry accounting library in Python, based on ledger-cli — the C++ precursor to Beancount. It brings plain-text accounting into the Python ecosystem so programs can read, validate, and report on financial ledgers without leaving the stack.
The problem
Plain-text accounting tools exist, but they live in C++ or Go and expose their logic through CLI front-ends rather than programmatic APIs. A Python codebase that needs to reason over ledger data — categorize transactions, compute balances, enforce commodity constraints — either shells out to a foreign binary or re-implements the posting rules from scratch. Neither scales.
The approach
myMeans ports the core ledger-cli model — accounts, commodities, transactions, and their balancing constraints — into a typed Python library with a public API instead of a CLI surface. The 44-test suite and CI gate cover the posting rules that make double-entry correct by construction. Published on PyPI under MPL-2.0 at version 0.7.0 with 17 documentation pages, pre-commit hooks, and full type annotations.
What it demonstrates
A stage-7 published library with 44 tests, 17 docs pages, CI, pre-commit, and full type coverage shows the same care applied to financial correctness that most teams reserve for their core product — accounting rules treated as a compile-time contract, not a spreadsheet convention.
Repository evidence
Observable facts.
- Documentation
- 17 documentation files
- Test surface
- 44 test files
- Continuous integration
- Configured
- Pre-commit hooks
- Configured
- Typed source
- Configured
- Visual evidence
- Working preview recorded
- Technologies
- py · pypi