Skip to main content

Typed parser and query SDK for Realbyte Money Manager .mmbak backups.

Project description

moneymanager-parser

CI PyPI Python versions

Typed Python SDK and offline CLI for Realbyte Money Manager .mmbak exports.

A .mmbak export is a ZIP-wrapped SQLite database. This package reads the export locally, resolves common schema aliases across app versions, and exposes transactions, flexible queries, schema inspection, categories, accounts, and currencies. Core parsing uses only the Python standard library. Income is exposed by the API, but expense-oriented analysis should treat it as informational because Money Manager exports can vary by installation.

The backup's currencies are read from the CURRENCY table when present. currency() returns the main currency (ISO, symbol, name); amounts are stored in the account/transaction currency and are not converted.

Soft-deleted rows (IS_DEL / C_IS_DEL) are excluded from all results. Account names resolve from the asset table (including the NIC_NAME nickname used by recent exports). When the asset table has an explicit balance column it is used as-is; otherwise accounts() reports a best-effort balance derived from transactions (income adds, expense subtracts, transfers move the amount to the destination account via toAssetUid). Derived balances are raw numeric sums with no currency conversion, so totals mixing currencies are not meaningful.

Safety

All connections are opened read-only (PRAGMA query_only=ON) and never contact external services. Archive members are size-checked before extraction to guard against decompression bombs, and all SQL identifiers read from the backup are quoted defensively.

Install

pip install moneymanager-parser

Quickstart

from moneymanager_parser import MoneyManagerBackup

with MoneyManagerBackup.from_file("backup.mmbak") as backup:
    main = backup.currency()
    if main:
        print(main.iso, main.symbol)
    for txn in backup.transactions():
        print(txn.date, txn.kind, txn.category, txn.amount)
    print(backup.query(month="2026-01", top=10).as_dict())  # rows include account/to_account

Custom transaction type maps are supported:

MoneyManagerBackup.from_file("backup.mmbak", type_map={0: "income", 1: "expense", 7: "transfer"})

CLI

mmbak query backup.mmbak --month 2026-01 --group-by category --top 10
mmbak schema backup.mmbak
mmbak currency backup.mmbak

All commands print JSON and never contact external services.

Development

python3 -m venv .venv
. .venv/bin/activate
pip install -e '.[dev]'
ruff check .
ruff format --check .
mypy src
pytest --cov

Contributing

Issues and pull requests are welcome. Please include tests for schema variants and avoid committing personal exports; test backups should be generated synthetically.

License

MIT © 2026 Shubham Sharma

Project details


Download files

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

Source Distribution

moneymanager_parser-0.3.0.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

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

moneymanager_parser-0.3.0-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file moneymanager_parser-0.3.0.tar.gz.

File metadata

  • Download URL: moneymanager_parser-0.3.0.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for moneymanager_parser-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f3fd624262aff2ddba51d95f835a79f7b630d01df802af7723374115846c1033
MD5 0da00a563d5a6148643506b2e4917c06
BLAKE2b-256 ff02da7df047e45f84803506b81d1570823f15efd50e41a4ed4433e07c907d36

See more details on using hashes here.

Provenance

The following attestation bundles were made for moneymanager_parser-0.3.0.tar.gz:

Publisher: release.yml on shubham1172/moneymanager-parser

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

File details

Details for the file moneymanager_parser-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for moneymanager_parser-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c519c925358f4514369c5285ea175453ef3170f0776e4bfd5699b346c46f2374
MD5 1fc23a903a6f7e1a6718a9eb12576351
BLAKE2b-256 9403a8600543fd7836f5db354e9f36c75eeffb1e068f0e72aaa597819bcdc8b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for moneymanager_parser-0.3.0-py3-none-any.whl:

Publisher: release.yml on shubham1172/moneymanager-parser

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page