What's Changed
Performance
- Persistent HTTP session reuse across API calls (avoids repeated connection overhead)
- Retries enabled by default (retry_attempts=3 with exponential backoff for transient errors)
Fixes
- Correct sportTypeId for swimming workouts
- Ruff and mypy CI clean (0 errors)
Misc / Tooling
- Added -debug / -d flag on demo script for timing and HTTP visibility
- Python 3.12 minimum; tooling and workout models modernized
- Expanded mocked unit test coverage (~30 new tests)