Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Tags: cyberjunky/python-garminconnect

Tags

v0.3.4

Toggle v0.3.4's commit message
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]>

0.3.3

Toggle 0.3.3's commit message
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]>

0.3.2

Toggle 0.3.2's commit message
Release 0.3.2

- feat: 5-strategy cascading login (ha-garmin flow) with MFA dual-endpoint fallback
- feat: add get_scheduled_workouts API method
- fix: validation error message
- fix: mypy return type for _http_post
- style: apply ruff format fixes

0.3.1

Toggle 0.3.1's commit message
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]>

0.3.0

Toggle 0.3.0's commit message
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]>

0.2.40

Toggle 0.2.40's commit message
Bump version to 0.2.40

0.2.39

Toggle 0.2.39's commit message
Fix CI: add --target-version py310 to black check

0.2.29

Toggle 0.2.29's commit message
Fix CI: add --target-version py310 to black check

0.2.38

Toggle 0.2.38's commit message
Minor lint fixes

0.2.37

Toggle 0.2.37's commit message
Cleanup