- Add: Strava API change - Route objects have a new waypoints attribute (@bot, #480)
- Fix: Docs - add contributing section to top bar for easier discovery and a few small syntax fixes in the docs (@lwasser)
- Fix: Manifest.in file - remove example dir (@lwasser, #307)
- Fix: Codecov report wasn't generating correctly (@lwasser, #469)
- Fix: Add sport type to create_activity and create type validator method. NOTE: this fix contains a breaking change in
Client.create_activity()
activity_type is now an optional keyword argument rather than a required positional argument (@lwasser, #279) - Fix: Fixes the Strava API update bot (@jsamoocha, #477)
- Fix: Cleanup dependencies to only use pyproject toml (@lwasser, #466)
- Fix: use parse_obj rather than deserialize internally where possible (@lwasser, #358)
- Remove: functional test suite from stravalib (@lwasser, #457)
- Remove:
client.delete_activity
method is no longer supported by Strava (@lwasser, #238) - Remove/Add: Drop Python 3.9, add Python 3.12 (@lwasser, #487)
If you have been using the client.delete_activity
method then your code will
no longer work as this method was removed due to being deprecated by Strava. We also are dropping support for Python 3.9 (end of life / no more security fixes in October 2024 and now only getting security fixes) in this release and adding support for 3.12.
@jsamoocha, @lwasser, stravalib bot :)
- Add: Support for Strava's new read rate limits (@jsamoocha, #446)
- Add: Improved handling of unexpected activity types (@jsamoocha, #454)
- Fix: Forgot to update model CI build to follow new src layout (@lwasser, #438)
- Fix: Type annotation on field that are of type timedelta are now correct (@enadeau, #440)
- Fix: Correct type for ActivityPhoto sizes attribute (@jsamoocha, #444)
- Fix: codespell config - ignore resources dir in tests (@lwasser, #445)
- Fix: Ignore documentation autogenerated api stubs (@lwasser, #447)
A potentially breaking change is that the RateLimiter's __call__()
method now has
an additional method
argument representing the HTTP method used for that request.
Existing custom rate limiters from users must be updated to this change.
@jsamoocha @endeau, @lwasser,
- Stravalib now includes types annotation, the package is PEP 561 compatible (@enadeau, #423)
- Add: Add nox to run tests, build docs, build package wheel/sdist(@lwasser, #395, #397)
- Type annotation for all files in the library (@enadeau, #384, #415)
- Add blacken-docs and codespell to pre-commit & apply on docs (@lwasser, #391)
- Allow parsing of activity with segment of type other that Run and Ride (@JohnScolaro, #434)
- Infra: Replace flake8 and isort by ruff (@enadeau, #430)
- Remove python 3.8 support following NEP-29 (@enadeau, #416)
@endeau, @lwasser, @JohnScolaro
- Apply flake8 and numpy docstrings to limiter & protocol (@lwasser, #326)
- Update client's stream method to warn when using unofficial parameters (@enadeau, #385)
- Fix docstring in SleepingRateLimitRule (@enadeau)
- Fix: rename
SubscriptionCallback.validate
->SubscriptionCallback.validate_token
to avoid conflict withpydantic.BaseModel
(@lwasser, #394) - Fix: docstrings in model.py, documentation errors, findfonts warning suppression by removing opengraph (temporarily), typing updates (@lwasser, #387)
- Fix: read the docs is breaking due to pydantic json warnings, also update python version on build and sync pr previews (@lwasser, #412)
- Fix: update master to main in all builds (@lwasser)
- Type annotation to client file (@enadeau, #384)
- Add: issue templates for easier debugging / guide users (@lwasser, #408)
- Fix: read the docs is breaking due to pydantic json warnings, also update python version on build and sync pr previews (@lwasser, #412)
- Fix: update master to main in all builds (@lwasser)
@endeau, @lwasser, @jsamoocha
- Fix: pins pydantic to v1 in pyproject.toml dependencies (@jsamoocha, #382)
- Add: type checking to limiter, protocol and exc file (@enadeau , #374)
- Fix: two minor mistakes in documentation (@enadeau , #375)
- Fix: pins pydantic to v1.10.6 (@lwasser, #380)
@enadeau, @lwasser
- Fix two minor mistakes in documentation (@enadeau , #375)
- Add type checking to limiter, protocol and exc file (@enadeau , #374)
- Apply flake8 and numpy docstrings to all modules limiter & protocol (@lwasser, #326)
- Add: Add field override in class Segment to support all activity types (@solorisx, #368)
- Fix: Bumps Flask version in example code (@jsamoocha, #366)
@solorisx, @jsamoocha
- Add: Adds RPE to activity model (@jsamoocha, #355)
- Add: support sport_type in client.update_activitiy() (@think-nice-things, #360)
- Fix: Move to numpy style docstrings & add black (@lwasser, #365)
- The
activity_type
parameter in the client methodupdate_activity()
is deprecated and should be replaced bysport_type
.
@jsamoocha, @lwasser, @think-nice-things
- Adds Strava API changes, and datamodel-code-generator bug fix (@jsamoocha, #333)
- Add: Replace full legacy model with extensions from the generated pydantic model (@jsamoocha, #324)
- Add: Add support for lazy loading related entities (@jsamoocha, #322)
- Add: Add support for nested model attributes(@jsamoocha, #316)
- Add: replaces implementations for the classes Club, Gear, ActivityTotals, AthleteStats, and Athlete by the generated Pydantic model & backwards compatibility (@jsamoocha, #315)
- Add: Workflow for updating strava model when the API changes (@jsamoocha, #302)
- Add:
pydantic_autodoc
to sphinx build and reconfigure api structure - p1 (@lwasser, #326)
- Fix: Corrects attribute lookup for enum values (@jsamoocha,#329)
- The
BaseEntity
methodsdeserialize()
,from_dict()
, andto_dict()
are deprecated and will raise aDeprecationWarning
when they're used. They should be replaced by the pydantic methodsparse_obj()
anddict()
orjson()
.
- The complete
attributes
module - All the abstract entity types (e.g.
IdentifiableEntity
,LoadableEntity
) from themodel
module - Constants used for activity types such as
Activity.RIDE
HeartrateActivityZone
,PowerActivityZone
,PaceActivityZone
as subtypes ofBaseActivityZone
(the latter is retained)- Everything related to segment leaderboards as this is not supported by Strava anymore
@jsamoocha, @lwasser, @oliverkurth
- Add: Upload photo to activity (@gitexel, #318)
- Add: Support uploading
activity_file
object with typebytes
(@gitexel, #308) - Add: Pre-commit hook + instructions and configure precommit.ci bot (@lwasser, #293)
- Fix: Internal warnings should be ignored in tests (@jsamoocha, #319)
- Fix:
setuptools_scm
bug when installing stravalib remotely via GitHub (@lwasser, #331) - Fix: fix LatLon unmarshal from string type (@oliverkurth, #334)
- Fix: allows arithmetic and comparison between multiple quantities (@jsamoocha, #335)
@oliverkurth, @gitexel, @jsamoocha, @lwasser
- Add: Development & build/release guide to documentation, edit button to documentation theme, pr template for release (@lwasser, #289)
- Add: Integration tests for /routes/{id} and /segments/starred (GET) (@jsamoocha, #250 (partial))
- Add: Add integration tests for all POST/PUT client methods (@jsamoocha, #250 (partial))
- Add: code cov to test suite (@lwasser, #262)
- Add: add code of conduct to the repo, update contributing guide + readme badges (@lwasser, #269, #274)
- Add: pull request templates for regular pr and release (@lwasser, #294)
- Add: Support for python 3.11
- Fix: Move docs to
furo
theme, addmyst
support for markdown, include CONTRIBUTING.md in documentation, enhance intro documentation page and add linkcheck to docs build (@lwasser, #276) - Fix: deprecated set-output command in actions build (@yihong0618, #272)
- Fix: Add readthedocs config file to ensure build installs using pip (@lwasser, #270)
- Change: Replace
units
dependency bypint
(@jsamoocha, #281)
- Remove: Support for python 3.7
@lwasser, @yihong0618, @jsamoocha
- Add: Add an option to mute Strava activity on update (@ollyajoke, #227)
- Add Update make to build and serve docs and also run current tests (@lwasser,#263)
- Add: Move package to build /
setuptools_scm
for version / remove setup.py and add CI push to pypi (@lwasser, #259)
- Fix: add new attributes for bikes according to updates to Strava API to fix warning message (@huaminghuangtw, #239)
- Fix: Minor bug in PyPI push and also streamlined action build (@lwasser, #265)
- Fix:
get_athlete
w new attrs for shoes given strava updates to API (@lwasser, #220) - Fix: Refactor deprecated unittest aliases for Python 3.11 compatibility (@tirkarthi, #223)
- Patch: Update readme and fix broken links in docs (@lwasser, #229)
- Change: Improved unknown time zone handling (@jsamoocha, #242)
- Change: Refactor test suite and implement Ci for tests (@jsamoocha, #246)
- Change: Remove support for python 2.x (@yihong0618, #254)
- Change: Overhaul of documentation, fix links and CI build (@lwasser, #222)
@jsamoocha, @yihong0618, @tirkarthi, @huaminghuangtw, @ollyajoke, @lwasser
- Fix to unicode regression (@hozn, #217)
- Fixes IndexErrors when deserializing empty lists as GPS locations (@hozn, #216)
- Fix a few fields in Activity model (@hozn, #201, #214, #207)
- deal with tzname without offset and timedelta in string format (@hozn, #195)
- Update to docs and repr (@hozn, #200, #205, #206)
- Now webhooks use the same domain as the rest of API. (@hozn, #204)
- Setting rate_limit_requests=False in Client causes error (@hozn, #157)
- More fixes to new new authorization scopes (@hozn, #168)
- Added an example oauth app and some small docs updates.
- Changed missing-attribute warnings to be debug-level logs.
- Fixes of authorization_url / new scopes for new oauth (@hozn, #163, #165)
- Implementation of Strava's new auth. (@hozn, #162, #163)
- Version bump for dup file upload to pypi. :-[
- Fix mutable parameter defaults in rate-limiter util functions (@hozn, #155)
- Add the missing subscription_permissions attr to Athlete (@hozn, #156)
- Fix for pip 0.10.0 (@paulte, #149, #150)
- Auto-configure the rate limits (not just usage) from response headers. (@hozn, #142)
- More API changes to reflect the big privacy changes from Strava. (@hozn, #139, #140)
- Fix to kom_type attribute (@hozn, #138)
- Fixes to segment leaderboard models for Strava's API BREAKING CHANGE (@hozn, #137) (See https://groups.google.com/forum/#!topic/strava-api/SsL2ytxtZng)
- Return ObjectNotFound and AccessUnauthorized HTTPError subclasses for 404 and 401 errors respectively (@hozn, #134)
- Return None when there are no activity streams (@hozn, #118)
- Updated Activity for new attributes (@hozn, #115, #122)
- New segment attributes (@JohnnyLChang, #106)
- Streams for a route (@drixselecta, #101)
- Activity Uploader improvements (@bwalks, #119)
- Added to_dict() method to model objects (@hozn, #127)
- Added get_athlete_starred_segments (@wjazdbitu, #117)
- Fixed glitches in activity.laps (@hozn, #112)
- Fixed bug in club.members (@hozn, #110)
- Fix for delete_activity (@jonderwaater, #99)
- Updated ActivityPhoto model to support native photos and reverted get_activity_photos behavior for backwards compatibility (@hozn, #98)
- Added missing Club attributes (MMI) (@hozn, #97)
- Added support for undocumented inclusion of laps in activity details. (@hozn, #96)
- Added missing parameter for get_activity_photos (@hozn, #94)
- Added missing activyt pr_count attribute (@Wilm0r, #95)
- add "starred" property on SegmentExplorerResult (@mdarmetko, #92)
- Fixed update_activity to include description (@hozn, #91)
- More Python3 bugfixes
- Python3 bugfixes (@Tafkas, @martinogden)
- Added delete_activity
- added context_entries parameter to get_segment_leaderboard method (@jedman)
- Use (require) more modern pip/setuptools.
- Full Python 3 support (using Six). (@hozn, #69)
- Webhooks support (thanks to loisaidasam) (@hozn, #77)
- explore_segments bugfix (@hozn, #71)
- General updates to model/attribs (@hozn, #64, #73, etc.)
- Renamed
Activity.photos
property tofull_photos
due to new conflict with Strava API (@hozn, #45)
- Supporting new/removed attribs in Strava API (@hozn, #41, #42)
- Added support for joining/leaving clubs (@hozn, #43)
- Respect time zones in datetime objects being converted to epochs. (@hozn, #44)
- Activity streams data (Ghis)
- Friends/followers model attributes (Ghis)
- Support for photos (Ghis)
- Updates for new Strava exposed API attributes (@hozn)
- Fixed the _resolve_url to not assume running on nix system.
- Changed Activity.gear to be a full entity attribute (Strava API changed)
- Added core functionality for Strava API v3.
- Mostly redesigned codebase based on drastic changes in v3 API.
- Dropped support for API v1, v2 and the "scrape" module.
- First proof-of-concept (very alpha) release.