Mark src/ as Sources Root in your IDE so imports resolve correctly.
See project-structure.md for the full tree.
The project uses pyproject.toml (PEP 621). To set up a development venv:
python -m venv venv
venv/Scripts/activate # Windows
source venv/bin/activate # Linux/macOS
pip install -e .[dev]The [dev] extra pulls in pytest and pyinstaller. The runtime dependencies (pandas, PySide6, chardet) are always installed.
IDE run configurations are stored in the .run/ folder:
- Direct launch of the app via
src/gui.py - Test runs
Tests live under tests/. Configuration is in pyproject.toml ([tool.pytest.ini_options]). Run from the project root:
pytest # entire suite (59 tests)
pytest tests/unit/ # unit tests only
pytest tests/import_test.py # one integration suite
pytest tests/transaction_decorator_test.py
pytest -W error # strict — fail on any warning (use after dependency bumps)For end-to-end manual checks the automated suite cannot reach (live GUI, packaged binaries, encoding edge cases), see testing-strategy.md.
- Windows installer — see windows-build.md
- Linux
.deband snap — see ../linux/linux.md
For ADRs and component/sequence diagrams, see architecture/index.md.
Bump the version in lockstep across all release artifacts:
python scripts/bump_version.py 1.1.0 # write the change
python scripts/bump_version.py --check 1.1.0 # dry-run previewThe script updates: pyproject.toml, linux/createDebFile.sh, windows/installer/windowsInstallScript.iss, snapcraft.yaml, linux/snap/transaction_decorator.desktop. After running it, commit, tag, and push — CI builds the Windows installer / deb / snap artifacts. See testing-strategy.md for the per-platform smoke checklist.