feat: Implement CLI and TUI for Fountain Pen Tracker

- Added CLI functionality for adding, editing, viewing, and deleting fountain pens.
- Introduced TUI using Textual for a more interactive experience.
- Created Pen and PenTracker classes to manage pen data and CSV storage.
- Implemented input validation for date fields.
- Added export functionality to JSON format.
- Updated project version to 0.2.0.
- Added unit tests for PenTracker functionality.
This commit is contained in:
Don Harper 2026-04-26 23:00:52 -05:00
parent 1a12e6d3c5
commit 51a1697c83
18 changed files with 866 additions and 166 deletions

View file

@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: pen-tracker
Version: 0.1.2
Version: 0.2.0
Summary: A fountain pen collection tracker.
Author-email: Don Harper <don@donharper.org>
Requires-Python: >=3.8
@ -8,3 +8,45 @@ Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: textual
Dynamic: license-file
# Pen Tracker
A simple fountain pen collection tracker.
## Installation
```bash
pip install .
```
## Usage
### CLI
Interactive mode:
```bash
pen-tracker
```
Command-line mode:
```bash
pen-tracker add --make "Pilot" --model "Metropolitan" --nib "F"
pen-tracker list
pen-tracker export --output my_pens.json
```
### TUI
```bash
pen-tui
```
## Features
- Track fountain pens with details like make, model, nib, ink, etc.
- CLI interface with interactive and command-line modes
- TUI interface using Textual
- Data stored in CSV format
- Export to JSON
- Input validation for dates
- Configurable CSV path via PEN_TRACKER_CSV environment variable

View file

@ -10,4 +10,5 @@ src/pen_tracker.egg-info/SOURCES.txt
src/pen_tracker.egg-info/dependency_links.txt
src/pen_tracker.egg-info/entry_points.txt
src/pen_tracker.egg-info/requires.txt
src/pen_tracker.egg-info/top_level.txt
src/pen_tracker.egg-info/top_level.txt
tests/test_engine.py