14
0
Files
python-spotipy/python-spotipy.changes

217 lines
11 KiB
Plaintext
Raw Normal View History

Accepting request 970741 from home:pgajdos:python - version update to 2.19.0 ## [2.19.0] - 2021-08-12 ### Added * Added `MemoryCacheHandler`, a cache handler that simply stores the token info in memory as an instance attribute of this class. * If a network request returns an error status code but the response body cannot be decoded into JSON, then fall back on decoding the body into a string. * Added `DjangoSessionCacheHandler`, a cache handler that stores the token in the session framework provided by Django. Web apps using spotipy with Django can directly use this for cache handling. ### Fixed * Fixed a bug in `CacheFileHandler.__init__`: The documentation says that the username will be retrieved from the environment, but it wasn't. * Fixed a bug in the initializers for the auth managers that produced a spurious warning message if you provide a cache handler and you set a value for the "SPOTIPY_CLIENT_USERNAME" environment variable. * Use generated MIT license and fix license type in `pip show` ## [2.18.0] - 2021-04-13 ### Added - Enabled using both short and long IDs for playlist_change_details - Added a cache handler to `SpotifyClientCredentials` - Added the following endpoints * `Spotify.current_user_saved_episodes` * `Spotify.current_user_saved_episodes_add` * `Spotify.current_user_saved_episodes_delete` * `Spotify.current_user_saved_episodes_contains` * `Spotify.available_markets` ### Changed - Add support for a list of scopes rather than just a comma separated string of scopes ### Fixed * Fixed the bugs in `SpotifyOAuth.refresh_access_token` and `SpotifyPKCE.refresh_access_token` which raised the incorrect exception upon receiving an error response from the server. This addresses #645. * Fixed a bug in `RequestHandler.do_GET` in which the non-existent `state` attribute of `SpotifyOauthError` is accessed. This bug occurs when the user clicks "cancel" in the permissions dialog that opens in the browser. * Cleaned up the documentation for `SpotifyClientCredentials.__init__`, `SpotifyOAuth.__init__`, and `SpotifyPKCE.__init__`. ## [2.17.0] - 2021-02-28 ### Changed - moved os.remove(session_cache_path()) inside try block to avoid TypeError on app.py example file - A warning will no longer be emitted when the cache file does not exist at the specified path OBS-URL: https://build.opensuse.org/request/show/970741 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-spotipy?expand=0&rev=16
2022-04-19 12:05:01 +00:00
-------------------------------------------------------------------
Tue Apr 19 10:06:31 UTC 2022 - pgajdos@suse.com
- version update to 2.19.0
## [2.19.0] - 2021-08-12
### Added
* Added `MemoryCacheHandler`, a cache handler that simply stores the token info in memory as an instance attribute of this class.
* If a network request returns an error status code but the response body cannot be decoded into JSON, then fall back on decoding the body into a string.
* Added `DjangoSessionCacheHandler`, a cache handler that stores the token in the session framework provided by Django. Web apps using spotipy with Django can directly use this for cache handling.
### Fixed
* Fixed a bug in `CacheFileHandler.__init__`: The documentation says that the username will be retrieved from the environment, but it wasn't.
* Fixed a bug in the initializers for the auth managers that produced a spurious warning message if you provide a cache handler and you set a value for the "SPOTIPY_CLIENT_USERNAME" environment variable.
* Use generated MIT license and fix license type in `pip show`
## [2.18.0] - 2021-04-13
### Added
- Enabled using both short and long IDs for playlist_change_details
- Added a cache handler to `SpotifyClientCredentials`
- Added the following endpoints
* `Spotify.current_user_saved_episodes`
* `Spotify.current_user_saved_episodes_add`
* `Spotify.current_user_saved_episodes_delete`
* `Spotify.current_user_saved_episodes_contains`
* `Spotify.available_markets`
### Changed
- Add support for a list of scopes rather than just a comma separated string of scopes
### Fixed
* Fixed the bugs in `SpotifyOAuth.refresh_access_token` and `SpotifyPKCE.refresh_access_token` which raised the incorrect exception upon receiving an error response from the server. This addresses #645.
* Fixed a bug in `RequestHandler.do_GET` in which the non-existent `state` attribute of `SpotifyOauthError` is accessed. This bug occurs when the user clicks "cancel" in the permissions dialog that opens in the browser.
* Cleaned up the documentation for `SpotifyClientCredentials.__init__`, `SpotifyOAuth.__init__`, and `SpotifyPKCE.__init__`.
## [2.17.0] - 2021-02-28
### Changed
- moved os.remove(session_cache_path()) inside try block to avoid TypeError on app.py example file
- A warning will no longer be emitted when the cache file does not exist at the specified path
- The docs for the `auth` parameter of `Spotify.init` use the term "access token" instead of "authorization token"
- Changed docs for `search` to mention that you can provide multiple types to search for
- The query parameters of requests are now logged
- Deprecate specifing `cache_path` or `username` directly to `SpotifyOAuth`, `SpotifyPKCE`, and `SpotifyImplicitGrant` constructors, instead directing users to use the `CacheFileHandler` cache handler
- Removed requirement for examples/app.py to specify port multiple times (only SPOTIPY_REDIRECT_URI needs to contain the port)
### Added
- Added log messages for when the access and refresh tokens are retrieved and when they are refreshed
- Support `market` optional parameter in `track`
- Added CacheHandler abstraction to allow users to cache tokens in any way they see fit
### Fixed
- Fixed Spotify.user_playlist_reorder_tracks calling Spotify.playlist_reorder_tracks with an incorrect parameter order
- Fixed deprecated Urllib3 `Retry(method_whitelist=...)` in favor of `Retry(allowed_methods=...)`
- python-mock is not required for build
-------------------------------------------------------------------
Thu Oct 29 09:29:48 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
- Update to 2.16.1:
* Fixed
+ playlist_tracks example code no longer prints extra
characters on final loop iteration
+ SpotifyException now thrown when a request fails & has no
response (#571, #581)
+ Added scope, playlist-read-private, to examples that access
user playlists using the spotipy api:
current_user_playlists()
+ Enable retries for POST, DELETE, PUT (#577)
* Changed
+ both inline and starting import lists are sorted using isort
module
+ changed Max Retries exception code from 599 to 429
- Update to 2.16.0:
* Added
+ open_browser can be passed to the constructors of
SpotifyOAuth and SpotifyPKCE to make it easier to authorize
in browserless environments
- Update to 2.15.0:
* Added
+ SpotifyPKCE.parse_auth_response_url, mirroring that method in
SpotifyOAuth
* Changed
+ Specifying a cache_path or username is now optional
* Fixed
+ Using SpotifyPKCE.get_authorization_url will now generate a
code challenge if needed
- Update to 2.14.0:
* Added
+ (experimental) Support to search multiple/all markets at
once.
+ Support to test whether the current user is following certain
users or artists
+ Proper replacements for all deprecated playlist endpoints (See
https://developer.spotify.com/community/news/2018/06/12/changes-to-playlist-uris/
and below)
+ Allow for OAuth 2.0 authorization by instructing the user to
open the URL in a browser instead of opening the browser.
+ Reason for 403 error in SpotifyException
+ Support for the PKCE Auth Flow
+ Support to advertise different language to Spotify
+ Added 'collaborative' parameter to user_playlist_create
method.
+ Enforce CHANGELOG update on PR
+ Adds additional_types parameter to retrieve currently playing
podcast episode
+ Support to get info about a single category
* Deprecated
+ user_playlist_change_details in favor of
playlist_change_details
+ user_playlist_unfollow in favor of
current_user_unfollow_playlist
+ user_playlist_add_tracks in favor of playlist_add_items
+ user_playlist_replace_tracks in favor of
playlist_replace_items
+ user_playlist_reorder_tracks in favor of
playlist_reorder_items
+ user_playlist_remove_all_occurrences_of_tracks in favor of
playlist_remove_all_occurrences_of_items
+ user_playlist_remove_specific_occurrences_of_tracks in favor
of playlist_remove_specific_occurrences_of_items
+ user_playlist_follow_playlist in favor of
current_user_follow_playlist
+ user_playlist_is_following in favor of playlist_is_following
+ playlist_tracks in favor of playlist_items
* Fixed
+ fixed issue where episode URIs were being converted to track
URIs in playlist calls
- Update to 2.13.0: * Added + Added `SpotifyImplicitGrant` as an auth manager option. It provides user authentication without a client secret but sacrifices the ability to refresh the token without user input. (However, read the class docstring for security advisory.) + Added built-in verification of the `state` query parameter + Added two new attributes: error and error_description to `SpotifyOauthError` exception class to show + authorization/authentication web api errors details. + Added `SpotifyStateError` subclass of `SpotifyOauthError` + Allow extending `SpotifyClientCredentials` and `SpotifyOAuth` + Added the market paramter to `album_tracks` + Added a method to update the auth token. + Support for shows/podcasts and episodes + Added CONTRIBUTING.md * Deprecated + Deprecated `util.prompt_for_user_token` in favor of `spotipy.Spotify(auth_manager=SpotifyOAuth())` * Fixed + Logging regression due to the addition of `logging.basicConfig()` which was unneeded. + Issue where using `http://localhost` as redirect_uri would cause the authorization process to hang. + Fixed miscellaneous issues with parsing of callback URL + Close session when Spotipy object is unloaded + Propagate refresh token error * Changed + Updated the documentation to give more details on the authorization + process and reflect 2020 Spotify Application jargon and practices. + The local webserver is only started for localhost redirect_uri which specify a port, + i.e. it is started for `http://localhost:8080` or `http://127.0.0.1:8080`, not for `http://localhost`. + Client retry logic has changed as it now uses urllib3's `Retry` in conjunction with requests `Session` + The session is customizable as it allows for: - status_forcelist - retries - status_retries - backoff_factor + Spin up a local webserver to auto-fill authentication URL + Use session in SpotifyAuthBase + Logging used instead of print statements - Skip one test that requires external internet access OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-spotipy?expand=0&rev=12
2020-07-07 06:58:55 +00:00
-------------------------------------------------------------------
Tue Jul 7 06:56:38 UTC 2020 - Steve Kowalik <steven.kowalik@suse.com>
- Update to 2.13.0:
* Added
+ Added `SpotifyImplicitGrant` as an auth manager option. It provides
user authentication without a client secret but sacrifices the ability
to refresh the token without user input. (However, read the class
docstring for security advisory.)
+ Added built-in verification of the `state` query parameter
+ Added two new attributes: error and error_description to `SpotifyOauthError` exception class to show
+ authorization/authentication web api errors details.
+ Added `SpotifyStateError` subclass of `SpotifyOauthError`
+ Allow extending `SpotifyClientCredentials` and `SpotifyOAuth`
+ Added the market paramter to `album_tracks`
+ Added a method to update the auth token.
+ Support for shows/podcasts and episodes
+ Added CONTRIBUTING.md
* Deprecated
+ Deprecated `util.prompt_for_user_token` in favor of `spotipy.Spotify(auth_manager=SpotifyOAuth())`
* Fixed
+ Logging regression due to the addition of `logging.basicConfig()` which was unneeded.
+ Issue where using `http://localhost` as redirect_uri would cause the authorization process to hang.
+ Fixed miscellaneous issues with parsing of callback URL
+ Close session when Spotipy object is unloaded
+ Propagate refresh token error
* Changed
+ Updated the documentation to give more details on the authorization
+ process and reflect 2020 Spotify Application jargon and practices.
+ The local webserver is only started for localhost redirect_uri which specify a port,
+ i.e. it is started for `http://localhost:8080` or `http://127.0.0.1:8080`, not for `http://localhost`.
+ Client retry logic has changed as it now uses urllib3's `Retry` in conjunction with requests `Session`
+ The session is customizable as it allows for:
- status_forcelist
- retries
- status_retries
- backoff_factor
+ Spin up a local webserver to auto-fill authentication URL
+ Use session in SpotifyAuthBase
+ Logging used instead of print statements
- Skip one test that requires external internet access
-------------------------------------------------------------------
Thu Mar 26 14:45:02 UTC 2020 - Marketa Calabkova <mcalabkova@suse.com>
- update to 2.10.0
* Support for add_to_queue
* Add CHANGELOG and LICENSE to released package
Accepting request 785943 from home:pgajdos:python - version update to 2.9.0 * Support `position_ms` optional parameter in `start_playback` * Add `requests_timeout` parameter to authentication methods * Make cache optional in `get_access_token` * Support for `playlist_cover_image` * Support `after` and `before` parameter in `current_user_recently_played` * CI for unit tests * Automatic `token` refresh * `auth_manager` and `oauth_manager` optional parameters added to `Spotify`'s init. * Optional `username` parameter to be passed to `SpotifyOAuth`, to infer a `cache_path` automatically * Optional `as_dict` parameter to control `SpotifyOAuth`'s `get_access_token` output type. However, this is going to be deprecated in the future, and the method will always return a token string * Optional `show_dialog` parameter to be passed to `SpotifyOAuth` * Both `SpotifyClientCredentials` and `SpotifyOAuth` inherit from a common `SpotifyAuthBase` which handles common parameters and logics. * Support for `playlist_tracks` * Support for `playlist_upload_cover_image` * `user_playlist_tracks` doesn't require a user anymore (accepts `None`) * Deprecated `user_playlist` and `user_playlist_tracks` * Fixed broken examples in README, examples and doc * Allow session keepalive * Bump requests to 2.20.0 * Fixed inconsistent behaviour with some API methods when a full HTTP URL is passed. * Fixed invalid calls to logging warn method * Support for `playlist` to get a playlist without specifying a user * Support for `current_user_saved_albums_delete` * Support for `current_user_saved_albums_contains` * Support for `user_unfollow_artists` * Support for `user_unfollow_users` * Added follow and player endpoints OBS-URL: https://build.opensuse.org/request/show/785943 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-spotipy?expand=0&rev=8
2020-03-17 14:11:54 +00:00
-------------------------------------------------------------------
Tue Mar 17 13:57:10 UTC 2020 - pgajdos@suse.com
- version update to 2.9.0
* Support `position_ms` optional parameter in `start_playback`
* Add `requests_timeout` parameter to authentication methods
* Make cache optional in `get_access_token`
* Support for `playlist_cover_image`
* Support `after` and `before` parameter in `current_user_recently_played`
* CI for unit tests
* Automatic `token` refresh
* `auth_manager` and `oauth_manager` optional parameters added to `Spotify`'s init.
* Optional `username` parameter to be passed to `SpotifyOAuth`, to infer a `cache_path` automatically
* Optional `as_dict` parameter to control `SpotifyOAuth`'s `get_access_token` output type. However, this is going to be deprecated in the future, and the method will always return a token string
* Optional `show_dialog` parameter to be passed to `SpotifyOAuth`
* Both `SpotifyClientCredentials` and `SpotifyOAuth` inherit from a common `SpotifyAuthBase` which handles common parameters and logics.
* Support for `playlist_tracks`
* Support for `playlist_upload_cover_image`
* `user_playlist_tracks` doesn't require a user anymore (accepts `None`)
* Deprecated `user_playlist` and `user_playlist_tracks`
* Fixed broken examples in README, examples and doc
* Allow session keepalive
* Bump requests to 2.20.0
* Fixed inconsistent behaviour with some API methods when
a full HTTP URL is passed.
* Fixed invalid calls to logging warn method
* Support for `playlist` to get a playlist without specifying a user
* Support for `current_user_saved_albums_delete`
* Support for `current_user_saved_albums_contains`
* Support for `user_unfollow_artists`
* Support for `user_unfollow_users`
* Added follow and player endpoints
-------------------------------------------------------------------
Wed Dec 19 16:22:44 UTC 2018 - Jan Engelhardt <jengelh@inai.de>
- Trim filler wording from descriptions.
-------------------------------------------------------------------
Wed Dec 19 13:08:00 UTC 2018 - Matej Cepl <mcepl@suse.com>
- Fix description and summary
-------------------------------------------------------------------
Wed Oct 17 05:28:28 UTC 2018 - Thomas Bechtold <tbechtold@suse.com>
- Initial packaging (version 2.4.4)