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", group_by="category").as_dict())

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.2.0.tar.gz (16.3 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.2.0-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: moneymanager_parser-0.2.0.tar.gz
  • Upload date:
  • Size: 16.3 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.2.0.tar.gz
Algorithm Hash digest
SHA256 a03346ba58c7e9bf7c3b5d3a91f4a2a5b99aa5ef7ea3f3d28b53944da12335fa
MD5 93dd58ae86250c0f2fe11514535f3949
BLAKE2b-256 26110deee70f42ce8585cac499f4f5e721ef864eee03bbb39327751d7fa9540d

See more details on using hashes here.

Provenance

The following attestation bundles were made for moneymanager_parser-0.2.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.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for moneymanager_parser-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 55012ed8458c1c13057ae3076f73cd064e01511a16028d05cbd682c370e39f32
MD5 0a3b0aa9db6d9c12b0727f18e1103177
BLAKE2b-256 0ae0e531b9d8d1d2441de6efacf7f073b3536a4092f4e9087f6184ef297b3495

See more details on using hashes here.

Provenance

The following attestation bundles were made for moneymanager_parser-0.2.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