Tags: cyberjunky/python-garminconnect
Tags
fix: resolve CI failures — ruff format and mypy errors in tests - Auto-format typed.py (ruff format) - Add type: ignore[method-assign] to MagicMock assignments in test_typed.py - Pass response= as keyword arg to HTTPError constructor in test_retry_decorator.py Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
feat: add --debug / -d flag to demo for timing and HTTP visibility Enables DEBUG logging from garminconnect plus the underlying requests / urllib3 HTTP stack, and logs wall-clock elapsed time per API call via safe_api_call. Lets users see exactly where time is spent (TLS handshake, response time, retries). Use: python demo.py -d (or --debug, or DEMO_DEBUG=1 env var) Flag is consumed from sys.argv so existing code paths don't see it. Without the flag, existing behavior is unchanged — garminconnect stays at CRITICAL to suppress double error prints. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Simplify token storage — remove unused IT and JWT_WEB tokens garmin_tokens.json now only stores the 3 DI OAuth fields actually used: di_token, di_refresh_token, di_client_id. IT tokens (services.garmin.com) were never used in any API call — that domain handles Garmin Pay/device provisioning which is out of scope. JWT_WEB, csrf_token and cookies are kept in-memory as a login fallback but no longer persisted to disk. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Add delete_workout() and unschedule_workout() methods (#341) - delete_workout(workout_id): delete a workout template from the library - unschedule_workout(scheduled_workout_id): remove a scheduled workout from the calendar without deleting the template - Add interactive demo functions for both methods - Update README with examples and method count (130+) Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
PreviousNext