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.1.0.tar.gz
(34.3 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.1.0.tar.gz.
File metadata
- Download URL: ynab_utils-1.1.0.tar.gz
- Upload date:
- Size: 34.3 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 |
747aa16ae337fb3151a4ac63dfc1e63a39b055e7643860346aeb2bcfd82d5240
|
|
| MD5 |
8a5d1c36a9243d1052f8e69a480dc5fc
|
|
| BLAKE2b-256 |
b82fc2ce3af758df38374ef0fa4910d3a8df5be145e30825366c919c2942433b
|
File details
Details for the file ynab_utils-1.1.0-py3-none-any.whl.
File metadata
- Download URL: ynab_utils-1.1.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 |
39ca3defa39e2c5187f011b3fc2aaa6604b02e8e57e383a9320306864d929571
|
|
| MD5 |
c515afbfc133625df2c9d2926ef121a2
|
|
| BLAKE2b-256 |
239cf91dfdbfc2305a2623db75bd0f946c1a8470c1ef0e19d4b29b3d195b0ca0
|