Skip to main content

nummus-financial

Unit Test Static Analysis Coverage Latest Version

A personal financial information aggregator and planning tool. Collects and categorizes transactions, manages budgets, tracks investments, calculates net worth, and predicts future performance.


Environment

List of dependencies for package to run.

Required

  • nummus python modules
    • sqlalchemy
    • gevent
    • colorama
    • rapidfuzz
    • flask
    • flask-assets
    • flask-login
    • pdfplumber
    • yfinance
    • pyspellchecker
    • tqdm
    • argcomplete
    • scipy
    • emoji
    • werkzeug
    • prometheus-flask-exporter
    • packaging
    • gunicorn

Optional

  • Encryption extension to encrypt database file. Does not encrypt SSL or importers folders
    • sqlcipher3-binary
    • Cipher
    • pycryptodome

Installation / Build / Deployment

Install module

> python -m pip install .
> # For autocomplete, activate completion hook
> activate-global-python-argcomplete

Install module with encryption

> python -m pip install .[encrypt]

For development, install as a link to repository such that code changes are used. It is recommended to install prek hooks

> python -m pip install -e .[dev]
> prek install

Usage

Run create command to make a new portfolio. Then start a web server using flask.

> nummus create
> flask --app nummus.web run

Docker

A better way to use nummus is hosting the web server on in a docker instance.

> docker run \
  --name nummus \
  --detach \
  --publish 8000:8000 \
  --publish 8001:8001 \
  --volume nummus-data:/data \
  nummus-financial

Configuration

The following environment variables are used to configure the instance.

Env Default Description
NUMMUS_PORTFOLIO /data/portfolio.db Path to portfolio inside data volume.
NUMMUS_KEY_PATH /data/.key.secret File containing portfolio key for encryption
NUMMUS_WEB_KEY nummus-admin Web key used when creating a new portfolio
WEB_PORT 8000 Port to bind server to
WEB_PORT_METRICS 8001 Port to bind metrics server to
WEB_CONCURRENCY n(CPU) * 2 + 1 Number of gunicorn workers to spawn
WEB_N_THREADS 1 Number of gunicorn workers threads to spawn
WEB_TIMEOUT 30 Gunicorn workers silent for more than this many seconds are killed and restarted

Running Tests

Does not test front-end at all and minimally tests web controllers. This is out of scope for the foreseeable future.

Unit tests

> python -m tests

Coverage report

> python -m coverage run && python -m coverage report

Development

Code development of this project adheres to Google Python Guide

Linters

  • ruff for Python
  • basedpyright for Python type analysis
  • djlint for Jinja HTML templates
  • codespell for all files

Formatters

  • isort for Python import order
  • black for Python
  • prettier for Jinja HTML templates, CSS, and JS
  • taplo for TOML

Tools

  • formatters.sh will run every formatter
  • linters.sh will run every linter
  • run_tailwindcss.sh will run tailwindcss with proper arguments

Configuration

Most configuration is made per portfolio via the web interface

There is a global config file for common user options, found at ~/.nummus/.config.ini. Defaults are:

[nummus]
secure-icon = ⚿ # Icon to print on secure CLI prompts such as unlocking password

Versioning

Versioning of this projects adheres to Semantic Versioning and is implemented using git tags.

Metadata

Release files for nummus-financial 0.17.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nummus-financial 0.17.2
File Size Uploaded Provenance Actions
nummus_financial-0.17.2.tar.gz 11.6 MB With provenance Details for nummus_financial-0.17.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for nummus-financial 0.17.2
File Interpreter ABI Platform Actions
nummus_financial-0.17.2-py3-none-any.whl Python 3 none any Details for nummus_financial-0.17.2-py3-none-any.whl

Total release size: 23.1 MB

Release files / nummus_financial-0.17.2.tar.gz

Download URL nummus_financial-0.17.2.tar.gz
Size 11.6 MB
Tags Source
SHA-256 checksum
How to use checksums
ad0ab9192f5fad2467cfde11f47331959a1946bb4b6f658575369b8fbda575d2
BLAKE2b-256 checksum
How to use checksums
d2baebd09a21216ac3ce13a9d2f15785809bacefb0448436a2ccc8959722a6bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 19, 2026.

Transparency log

Release files / nummus_financial-0.17.2-py3-none-any.whl

Download URL nummus_financial-0.17.2-py3-none-any.whl
Size 11.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
7718d3c20adc52e70531f716a004d7830e9f4a8309aecc33ee19a6d289463eb5
BLAKE2b-256 checksum
How to use checksums
4b53498c8572380f2eb39229813274f10037ec8c19e65596190ca5a33255f189
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 19, 2026.

Transparency log

Security for nummus-financial 0.17.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for nummus_financial-0.17.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 19, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.17.2 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page