Skip to content

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

The same types of changes should be grouped. Types of changes:

  • Added for new features.
  • Changed for changes in existing functionality.
  • Deprecated for soon-to-be removed features.
  • Removed for now removed features.
  • Fixed for any bug fixes.
  • Security in case of vulnerabilities.

[0.25.0] - 2022-02-01

Added

  • Added full support for parsing fit, tcx and gpx courses. Some of the functionality was already working, this release makes it complete.

[0.24.0] - 2021-12-16

Added

  • Adds processing of resting heartrate to athlete model from FIT files.

Fixed

  • Adds fixes for processing age and heigh to athlete model from FIT files.

[0.23.2] - 2021-12-13

Fixed

  • Fixes parsing the activity_class attribute on the athlete model returned by read_fit(metadata=True). It should now handle all possible values.

[0.23.1] - 2021-11-11

Fixed

  • Some FIT files contain records with duplicate field names of which only 1 was not null. Added code to make sure that the non null value was picked.

[0.23.0] - 2021-11-01

Changed

  • Updated dependency versions. Most notable is scikit-learn to ">= 0.23.1".

Deprecated

  • Python 3.6 support will be dropped in a next release as it is nearing EOL and some dependencies like scikit-learn already do not support it in their latest releases.

[0.22.1] - 2021-10-19

Fixed

  • Relax Athlete model validation because it raised errors for some FIT files.

[0.22.0] - 2021-10-19

Added

  • When metadata=True is passed to sweat.read_fit() the response now includes an "athlete" key that contains an Athlete model with information about the athlete.

Fixed

  • Suunto hrv samples that consist of only 1 value are now properly handled and do not raise a TypeError anymore.

[0.21.0] - 2021-04-22

Added

  • Adds testing for Python 3.10
  • read_tcx() now supports a metadata=True kwarg that will return device data.

[0.20.3] - 2021-04-20

Fixed

  • sweat.read_fit() now supports integer column names.

[0.20.2] - 2021-04-16

Fixed

  • read_fit() now handles summary data correctly when there is no data

[0.20.1] - 2021-04-16

Fixed

  • Fixed issue when pool_lengths=True but there are no pool length records in the FIT file.

[0.20.0] - 2021-04-15

Added

  • read_fit() now returns pool length records when thepool_lenghts=True` argument is passed.
  • read_fit() now return raw FIT messages when a raw_message=True argument is passed.
  • read_fit() can now return metadata and device information.

[0.19.0] - 2021-04-06

Added

  • Adds matplotlib dependency.
  • Extends sweat.read_fit() with support for multi session FIT files, hrv data, metadata (summaries and devices), error handling and much more...
  • Properly handles left-right balance from FIT files.
  • Adds Garmin FIT Profile based on the Garmin FIT SDK 21.47.

Fixed

  • Removes unnecessary numpy import in pdm docs.

[0.18.1] - 2021-03-12

Fixed

  • Fixes the index of mean max calculations as they were of by 1 second. First index is now 00:00:01 instead of 00:00:00.

[0.18.0] - 2021-03-12

Added

  • Adds monotonic argument to sweat.mean_max() to enforce a monotonically decreasing mean max curve. Usage: power.sweat.mean_max(monotonic=True). Defaults to False.

[0.17.1] - 2021-03-09

Fixed

  • Numerical columns are now converted to numeric dtypes for gpx files.

[0.17.0] - 2020-12-31

Fixed

  • Fixes error when loading FIT file without location data.

Changed

  • Removes "forward fill" when resampling dataframes. Users can manually get the old behavior back by running df = df.ffill().

[0.16.1] - 2020-11-19

Fixed

  • Fixes publishing docs by updating mknotebooks version >0.6.0

[0.16.0] - 2020-11-19

Added

  • Adds support for Python 3.9

Fixed

  • Latitude and longitude from FIT files are now converted from semicircles to degrees.

[0.15.0] - 2020-06-14

Added

  • Adds exponential power duration model.
  • Adds omni power duration model

Changed

  • Renames CriticalPowerRegressor to PowerDurationRegressor

[0.14.0] - 2020-06-09

Added

  • Adds sweat accessor to pandas series and data frames.
  • Add to_timedelta_index() and mean_max() to accessors.
  • Adds calculate_zones() and time_in_zone() to series accessor.

[0.13.0] - 2020-06-05

Added

  • Rewrite of Strava implemention, now features a single read_strava() function.

Removed

  • Old Strava functionality is removed in favor of a new read_strava() function.

[0.12.0] - 2020-06-05

Added

  • Added the CriticalPowerRegressor
  • Some refactoring and documentation for W'balance functionality.

Removed

  • Removed the old critical power curve fitting functionality
  • Removed WorkoutDataFrame model because it is not maintained.
  • Removed Athlete model because it is not maintained.
  • Removed GoldenCheetahClient because it is not maintained. Will be re-implemented later.

[0.11.0] - 2020-06-04

Added

  • Adds lap and session data for FIT files
  • Adds lap data for TCX files

[0.10.0] - 2020-06-01

Added

  • Usage examples on docs home page
  • Nomenclature for data frames
  • Adds ability to resample and interpolate data frames

Changed

  • Changes the index of returned data frames to a pandas.DatetimeIndex

[0.9.0] - 2020-05-23

Added

  • Added generic read_file function
  • Added generic read_dir function

[0.8.0] - 2020-04-26

Added

  • Added reading TCX files.

[0.7.0] - 2020-04-21

Added

  • Added reading GPX files.

[0.6.0] - 2020-04-21

Added

  • Added example data framework

Changed

  • Refactored reading FIT files to pandas-like interface: read_fit()

[0.5.0] - 2020-17-04

Added

  • Python 3.8 support.
  • Tests are now run in docker.
  • Implements Poetry for packaging and dependencies.
  • Adds Github Actions for tests and publishing.
  • Updates copyright year in LICENSE.
  • Adds CONTRIBUTING.md.
  • Adds Jupyter notebook functionality for docs.