Skip to content

Releases: cyberjunky/python-garminconnect

Release 0.2.37

01 Jan 11:00

Choose a tag to compare

What's Changed

  • Fixed possible MFA race condition
  • Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #314
  • Fix maxpoly arg to get_activity_details() to allow 0 value by @puntonim in #313
  • Added time in power zones for activities by @SebastianBurmester in #316

New Contributors

Full Changelog: 0.2.36...0.2.37

Release 0.2.36

29 Nov 17:01
e921425

Choose a tag to compare

What's Changed

  • Added methods for uploading workouts, also see demo.py menu option 5.

Full Changelog: 0.2.35...0.2.36

Release 0.2.35

28 Nov 12:37

Choose a tag to compare

What's Changed

  • Bump actions/checkout from 5 to 6 by @dependabot[bot] in #306
  • Implement querying daily lifestyle logging data by @fulopm in #304
  • Fix training plan retrieval by updating API endpoint by @federicopellegatta in #310
  • Fetch daily steps in chunks when range is over 28 days
  • Normalize token path before passing to Garth to be more compatible with Windows environments
  • Fixed parsing issue in demo,py when values are None

New Contributors

Full Changelog: 0.2.34...0.2.35

Release 0.2.34

10 Nov 08:55

Choose a tag to compare

Fixed

  • Demo program's readkey is now compatible with macOS, thanks @ed

Release 0.2.33

09 Nov 09:21

Choose a tag to compare

Fixed

  • Handle retired gear

Release 0.2.31

04 Nov 14:07

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.2.30...0.2.31

Release 0.2.30

06 Sep 11:02
ccfa52f

Choose a tag to compare

New Features

  • Added lactate threshold endpoint support
  • Added available badges and in-progress badges methods
  • Enhanced MFA (Multi-Factor Authentication) handling with improved error messages and retry logic
  • Updated demo.py and example.py with comprehensive error handling patterns
    (including Health report example, GraphQL support, workout upload example)

Improvements

  • Enhanced VCR test recording and compatibility
  • Improved code quality with extensive linting and CodeRabbit suggestions
  • Added comprehensive type annotations for parameters and return values
  • Enhanced CI/CD pipeline with better testing and validation
  • Improved documentation and code examples
  • Better error handling for API endpoints with clear user feedback
  • All API calls now have input validation (hope nothing breaks)
  • Major README enhancements

Technical Changes

  • Fixed VCR test compatibility issues
  • Enhanced pre-commit hooks and code quality checks
  • Improved import organization and code structure
  • Added codespell integration for better documentation quality
  • Enhanced package build and publishing process

Bug Fixes

  • Fixed authentication flow edge cases
  • Resolved linting and syntax issues
  • Fixed CI pipeline configurations
  • Improved virtual environment handling
  • I applied a ton of Coderabbit tweaks

Special thanks to the following contributors for their pull requests and improvements:

Pierre du Pont (@psdupvi) for lactate threshold endpoint implementation and CodeRabbit suggestion implementations
@dpfrakes for various fixes and improvements

This release focuses on stability improvements, enhanced authentication handling, and new API endpoints while maintaining backward compatibility.

Release 0.2.28

09 Jun 17:43

Choose a tag to compare

  • Revert max metrix url change by @psdupvi
  • Bumped garth to 0.5.15
  • Some linting and spelling fixes

Release 0.2.27

05 Jun 09:18

Choose a tag to compare

  • Bumped garth to 0.5.13, thanks to @matin
  • Reponse JSON now gets saved by example,py for analysis
  • Corrected max metrix url to get more recent data, thanks to @psdupvi
  • Fixed typo in logging, thanks to @arpanghosh8453
  • Fixed import problem and ruff issue, thanks to @yihong0618

Release 0.2.26

04 Apr 14:22

Choose a tag to compare

  • Bumped garth to 0.5.3
  • Merged parts of withings-sync code (due to incompatibility with garth 0.5.3)
  • Refactored MFA handling code for return_on_mfa argument
  • Updated example.py to work with this
  • Possible Breaking Change:
    You may need to call garmin.login(tokenstore) again after an MFA auth login
    See example.py