Track your fountain pens and inks
- Python 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .vscode | ||
| src | ||
| tests | ||
| .gitignore | ||
| CHANGELOG.md | ||
| import_csv_to_sqlite.py | ||
| LICENSE | ||
| PROJECT_DOCUMENTATION.md | ||
| pyproject.toml | ||
| README.md | ||
Pen Tracker
A simple fountain pen collection tracker.
Installation
pip install .
Data Storage
Data is stored in a SQLite database by default at ~/.local/share/pen-tracker/pen_tracker.db, following the XDG Base Directory specification. The directory is created automatically if it doesn't exist.
You can override the location by setting the PEN_TRACKER_DB environment variable or using --db when running the CLI.
Usage
CLI
Interactive mode:
pen-tracker
Command-line mode:
pen-tracker --db ~/.local/share/pen-tracker/pen_tracker.db add --maker "Pilot" --model "Metropolitan" --nib "F"
pen-tracker --db ~/.local/share/pen-tracker/pen_tracker.db list
pen-tracker --db ~/.local/share/pen-tracker/pen_tracker.db export --output my_pens.json
Add a new ink:
pen-tracker --db ~/.local/share/pen-tracker/pen_tracker.db add-ink --maker "Iroshizuku" --name "Kon-peki" --vendor "Goulet"
List saved inks:
pen-tracker --db ~/.local/share/pen-tracker/pen_tracker.db list-inks
Add a pen with explicit maker/vendor:
pen-tracker --db ~/.local/share/pen-tracker/pen_tracker.db add --maker "Pilot" --model "Custom 92" --vendor "VendorX" --current-ink "Kon-peki"
Import CSV data
If you are migrating from the old CSV storage format, run:
python import_csv_to_sqlite.py --db ~/.local/share/pen-tracker/pen_tracker.db
The import script will initialize the SQLite database if it does not already exist.
Features
- Track fountain pens with details like maker, model, nib, ink, and notes
- CLI interface with interactive and command-line modes
- Data stored in SQLite with normalized
makersandvendorslookup tables - Add and list inks via
add-ink/list-inks - Export collection to JSON
- Input validation for dates
- Configurable database path via
PEN_TRACKER_DBor--db