A collection of command line utilities for YNAB (You Need a Budget) users.
Project description
ynab-utils
A collection of command line utilities for YNAB (You Need a Budget) users.
Installation
# Install from PyPI
pip install ynab-utils
# Or install with uv
uv tool install ynab-utils
Quick Start
# Install uv (Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone and run
git clone <repo-url>
cd ynab-utils
uv run ynab-utils --help
Commands
detect-dupes
Find potential duplicate transactions in your YNAB export.
# Basic usage - finds exact duplicates on same date
ynab-utils detect-dupes --file transactions.csv
# Show all confidence levels (1=loosest, 5=strictest)
ynab-utils detect-dupes --file transactions.csv --confidence 1
# Only check recent transactions
ynab-utils detect-dupes --file transactions.csv --start-date 2025-01-01
# Adjust date matching window (default: 2 days)
ynab-utils detect-dupes --file transactions.csv --days 5
# Output as JSON
ynab-utils detect-dupes --file transactions.csv --output json
Confidence levels:
- 5: Same date, same amount, exact payee match
- 4: Same date, same amount, similar payee names
- 3: Within date window, same amount, exact/similar payee
- 2: Within date window, same amount, similar payee
- 1: Within date window, same amount only
Development
# Clone the repository
git clone https://github.com/davekonopka/ynab-utils.git
cd ynab-utils
# Install dev dependencies (includes pre-commit)
uv sync --extra dev
# Set up pre-commit hooks
uv run pre-commit install
uv run pre-commit install --hook-type commit-msg
# Run the CLI during development
uv run ynab-utils --help
# Run tests
uv run pytest
# Run tests with coverage
uv run pytest --cov=ynab_utils
# Lint code
uv run ruff check src/
# Format code
uv run ruff format src/
# Run pre-commit checks manually
uv run pre-commit run --all-files
Git Commits: This project uses Conventional Commits. Examples:
feat(detect-dupes): add --start-date filterfix(cli): correct argument parsing for --outputtest: add integration tests for date filtering
Publishing
# Build distribution packages
uv build
# Upload to PyPI (requires PyPI token)
uv publish
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ynab_utils-1.0.0.tar.gz
(34.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ynab_utils-1.0.0.tar.gz.
File metadata
- Download URL: ynab_utils-1.0.0.tar.gz
- Upload date:
- Size: 34.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1515506291905ad6b5bfb6c7c95dfd6610e67cc80049b04ee1ad84b3fe1d5bb
|
|
| MD5 |
4b5f2da8fd25930e236ad988c0c7380b
|
|
| BLAKE2b-256 |
129b08c45f40b88e9cc32ec747a6cf0e52792d5f52456bfeb5a95493e5534290
|
File details
Details for the file ynab_utils-1.0.0-py3-none-any.whl.
File metadata
- Download URL: ynab_utils-1.0.0-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17b0739b633891ad94272db29e345be7ba4015f06755c66fd5e0cef264212188
|
|
| MD5 |
7ba0c666c814ed3d628b7f9515e727d2
|
|
| BLAKE2b-256 |
aae1d0c2f7ca4afd20d47639a0e7fa64e9ee37e46a895fd32328e331fa0fa310
|