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)
    # Filter or group by account for account-specific totals.
    print(backup.query(month="2026-01", account="Credit Card", group_by="account").as_dict())
    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 --account "Credit Card" --group-by account --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.4.0.tar.gz (16.9 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.4.0-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: moneymanager_parser-0.4.0.tar.gz
  • Upload date:
  • Size: 16.9 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.4.0.tar.gz
Algorithm Hash digest
SHA256 c1b084ec8e54e2da93cc2d30749a1ebc66f0c4b76db453619b3457e16502193f
MD5 02d63c05d3380cb55f9b4eb94c60f5e5
BLAKE2b-256 61a442740a1fb4c41cb53664452b5633ed46a22d5d90ff26839f5f093776c804

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for moneymanager_parser-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9a664c9b4501e8e9c8552a6d860b1499ba53cf4a88b6167554169aab6cd0fa27
MD5 cf7a8732e4d9597f112aa0da324552e0
BLAKE2b-256 f455cafafe3a9479793b371bfd9d049364cd329d7e47d77d6244dd5272ac1068

See more details on using hashes here.

Provenance

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