Lumbago is the overall project for a family of Python accounting libraries. lumbago-core handles accounts, journals, transactions, and storing those records.

It is for people building accounting tools in Python. You might use it in a small script to record transactions or inside a larger application. You write the parts that collect the data and decide what to do with it.

The core library follows three basic ideas:

Your code creates accounts, then puts each transaction in a journal entry. The entry contains a date, a description, and the amounts to debit or credit. The core library checks that the accounts exist, that they are active, and that debits equal credits for each currency.

For example, a $125 cash sale has a $125 debit to Cash and a $125 credit to Sales revenue. An entry with a $125 debit and a $120 credit is rejected.

Records can stay in memory while your program runs, or be saved in a SQLite or PostgreSQL database. Your code chooses when to save a group of changes. Unfinished changes are rolled back. Saved journal entries cannot be edited or deleted through the library; corrections use new entries.

You can export transactions to a CSV file with one row for each debit or credit, so a spreadsheet or another program can read them.

The core library is still in early development and requires Python 3.12 or newer. A command-line app, user interface, and financial reports are still planned.

The core library's README has setup instructions. The examples show how to create transactions, save records, and export CSV files.