deezer-python-gql 0.20.0__tar.gz → 0.21.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {deezer_python_gql-0.20.0/deezer_python_gql.egg-info → deezer_python_gql-0.21.0}/PKG-INFO +6 -5
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/README.md +1 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/__init__.py +6 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/client.py +34 -0
- deezer_python_gql-0.21.0/deezer_python_gql/generated/move_track_in_playlist.py +21 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0/deezer_python_gql.egg-info}/PKG-INFO +6 -5
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql.egg-info/SOURCES.txt +1 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql.egg-info/requires.txt +4 -4
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/pyproject.toml +6 -6
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/tests/test_client.py +9 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/LICENSE +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/MANIFEST.in +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/__init__.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/base_client.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/add_album_to_favorite.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/add_artist_to_favorite.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/add_audiobook_to_favorite.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/add_playlist_to_favorite.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/add_podcast_to_favorite.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/add_track_to_favorite.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/add_tracks_to_playlist.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/ban_artist_from_recommendation.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/ban_track_from_recommendation.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/base_client.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/base_model.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/bookmark_podcast_episode.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/create_playlist.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/delete_playlist.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/enums.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/fragments.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_album.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_artist.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_artist_mix.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_audiobook.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_audiobook_chapter.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_banned_artists.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_banned_tracks.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_charts.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_family.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_favorite_albums.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_favorite_artists.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_favorite_audiobooks.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_favorite_playlists.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_favorite_podcasts.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_favorite_tracks.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_flow.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_flow_batch.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_flow_config_tracks.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_flow_configs.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_flow_tuner.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_infinite_track_mix.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_latest_podcast_episodes.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_livestream.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_made_for_me.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_me.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_music_together_affinity.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_music_together_group.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_music_together_groups.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_personal_tracks.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_playlist.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_podcast.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_podcast_episode.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_podcast_episode_bookmarks.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_podcast_episodes_by_ids.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_recently_played.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_recommendations.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_similar_artists.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_similar_tracks.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_smart_tracklist.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_track.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_track_mix.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_tracks_by_ids.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_user_charts.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_user_playlists.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/input_types.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/mark_as_not_played_podcast_episode.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/mark_as_played_podcast_episode.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/music_together_create_group.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/music_together_generate_group_name.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/music_together_join_group.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/music_together_leave_group.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/music_together_refresh_suggested_tracklist.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/music_together_update_group_settings.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/remove_album_from_favorite.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/remove_artist_from_favorite.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/remove_audiobook_from_favorite.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/remove_playlist_from_favorite.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/remove_podcast_from_favorite.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/remove_track_from_favorite.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/remove_tracks_from_playlist.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/search.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/search_flows.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/set_flow_discovery_tuner.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/unban_artist_from_recommendation.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/unban_track_from_recommendation.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/unbookmark_podcast_episode.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/update_playlist.py +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/py.typed +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql.egg-info/dependency_links.txt +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql.egg-info/not-zip-safe +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql.egg-info/top_level.txt +0 -0
- {deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: deezer-python-gql
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.21.0
|
|
4
4
|
Summary: Async typed Python client for Deezer's Pipe GraphQL API.
|
|
5
5
|
Author-email: Julian Daberkow <jdaberkow@users.noreply.github.com>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -16,13 +16,13 @@ Requires-Dist: pydantic>=2.0.0
|
|
|
16
16
|
Requires-Dist: yarl>=1.22.0
|
|
17
17
|
Provides-Extra: test
|
|
18
18
|
Requires-Dist: codespell==2.4.3; extra == "test"
|
|
19
|
-
Requires-Dist: mypy==2.
|
|
20
|
-
Requires-Dist: pre-commit==4.
|
|
19
|
+
Requires-Dist: mypy==2.4.0; extra == "test"
|
|
20
|
+
Requires-Dist: pre-commit==4.7.0; extra == "test"
|
|
21
21
|
Requires-Dist: pre-commit-hooks==6.0.0; extra == "test"
|
|
22
22
|
Requires-Dist: pytest==9.1.1; extra == "test"
|
|
23
|
-
Requires-Dist: pytest-asyncio==1.4.
|
|
23
|
+
Requires-Dist: pytest-asyncio==1.4.1; extra == "test"
|
|
24
24
|
Requires-Dist: pytest-cov==7.1.0; extra == "test"
|
|
25
|
-
Requires-Dist: ruff==0.
|
|
25
|
+
Requires-Dist: ruff==0.17.2; extra == "test"
|
|
26
26
|
Provides-Extra: dev
|
|
27
27
|
Requires-Dist: ariadne-codegen[subscriptions]; extra == "dev"
|
|
28
28
|
Dynamic: license-file
|
|
@@ -191,6 +191,7 @@ Keep a track or artist out of the user's recommendations (Flow, mixes).
|
|
|
191
191
|
| `delete_playlist(playlist_id)` | Delete a playlist |
|
|
192
192
|
| `add_tracks_to_playlist(playlist_id, track_ids)` | Add tracks to a playlist |
|
|
193
193
|
| `remove_tracks_from_playlist(playlist_id, ...)` | Remove tracks from a playlist |
|
|
194
|
+
| `move_track_in_playlist(playlist_id, ...)` | Move a track behind another one or to the top |
|
|
194
195
|
|
|
195
196
|
### Podcast Episode Management
|
|
196
197
|
|
|
@@ -162,6 +162,7 @@ Keep a track or artist out of the user's recommendations (Flow, mixes).
|
|
|
162
162
|
| `delete_playlist(playlist_id)` | Delete a playlist |
|
|
163
163
|
| `add_tracks_to_playlist(playlist_id, track_ids)` | Add tracks to a playlist |
|
|
164
164
|
| `remove_tracks_from_playlist(playlist_id, ...)` | Remove tracks from a playlist |
|
|
165
|
+
| `move_track_in_playlist(playlist_id, ...)` | Move a track behind another one or to the top |
|
|
165
166
|
|
|
166
167
|
### Podcast Episode Management
|
|
167
168
|
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/__init__.py
RENAMED
|
@@ -561,6 +561,10 @@ from .mark_as_played_podcast_episode import (
|
|
|
561
561
|
MarkAsPlayedPodcastEpisodeMarkAsPlayedPodcastEpisode,
|
|
562
562
|
MarkAsPlayedPodcastEpisodeMarkAsPlayedPodcastEpisodeBookmark,
|
|
563
563
|
)
|
|
564
|
+
from .move_track_in_playlist import (
|
|
565
|
+
MoveTrackInPlaylist,
|
|
566
|
+
MoveTrackInPlaylistMoveTrackInPlaylist,
|
|
567
|
+
)
|
|
564
568
|
from .music_together_create_group import (
|
|
565
569
|
MusicTogetherCreateGroup,
|
|
566
570
|
MusicTogetherCreateGroupMusicTogetherCreateGroupMusicTogetherCreateGroupError,
|
|
@@ -1143,6 +1147,8 @@ __all__ = [
|
|
|
1143
1147
|
"MarkAsPlayedPodcastEpisode",
|
|
1144
1148
|
"MarkAsPlayedPodcastEpisodeMarkAsPlayedPodcastEpisode",
|
|
1145
1149
|
"MarkAsPlayedPodcastEpisodeMarkAsPlayedPodcastEpisodeBookmark",
|
|
1150
|
+
"MoveTrackInPlaylist",
|
|
1151
|
+
"MoveTrackInPlaylistMoveTrackInPlaylist",
|
|
1146
1152
|
"MusicTogetherCreateGroup",
|
|
1147
1153
|
"MusicTogetherCreateGroupMusicTogetherCreateGroupMusicTogetherCreateGroupError",
|
|
1148
1154
|
"MusicTogetherCreateGroupMusicTogetherCreateGroupMusicTogetherCreateGroupOutput",
|
|
@@ -127,6 +127,10 @@ from .mark_as_played_podcast_episode import (
|
|
|
127
127
|
MarkAsPlayedPodcastEpisode,
|
|
128
128
|
MarkAsPlayedPodcastEpisodeMarkAsPlayedPodcastEpisode,
|
|
129
129
|
)
|
|
130
|
+
from .move_track_in_playlist import (
|
|
131
|
+
MoveTrackInPlaylist,
|
|
132
|
+
MoveTrackInPlaylistMoveTrackInPlaylist,
|
|
133
|
+
)
|
|
130
134
|
from .music_together_create_group import (
|
|
131
135
|
MusicTogetherCreateGroup,
|
|
132
136
|
MusicTogetherCreateGroupMusicTogetherCreateGroupMusicTogetherCreateGroupError,
|
|
@@ -4435,6 +4439,36 @@ class DeezerGQLClient(DeezerBaseClient):
|
|
|
4435
4439
|
data = self.get_data(response)
|
|
4436
4440
|
return RemoveTracksFromPlaylist.model_validate(data).remove_tracks_from_playlist
|
|
4437
4441
|
|
|
4442
|
+
async def move_track_in_playlist(
|
|
4443
|
+
self,
|
|
4444
|
+
playlist_id: str,
|
|
4445
|
+
track_id: str,
|
|
4446
|
+
after_track_id: Union[Optional[str], UnsetType] = UNSET,
|
|
4447
|
+
**kwargs: Any,
|
|
4448
|
+
) -> MoveTrackInPlaylistMoveTrackInPlaylist:
|
|
4449
|
+
query = gql("""
|
|
4450
|
+
mutation MoveTrackInPlaylist($playlistId: String!, $trackId: String!, $afterTrackId: String) {
|
|
4451
|
+
moveTrackInPlaylist(
|
|
4452
|
+
input: {playlistId: $playlistId, trackId: $trackId, afterTrackId: $afterTrackId}
|
|
4453
|
+
) {
|
|
4454
|
+
moveStatus
|
|
4455
|
+
}
|
|
4456
|
+
}
|
|
4457
|
+
""")
|
|
4458
|
+
variables: dict[str, object] = {
|
|
4459
|
+
"playlistId": playlist_id,
|
|
4460
|
+
"trackId": track_id,
|
|
4461
|
+
"afterTrackId": after_track_id,
|
|
4462
|
+
}
|
|
4463
|
+
response = await self.execute(
|
|
4464
|
+
query=query,
|
|
4465
|
+
operation_name="MoveTrackInPlaylist",
|
|
4466
|
+
variables=variables,
|
|
4467
|
+
**kwargs,
|
|
4468
|
+
)
|
|
4469
|
+
data = self.get_data(response)
|
|
4470
|
+
return MoveTrackInPlaylist.model_validate(data).move_track_in_playlist
|
|
4471
|
+
|
|
4438
4472
|
async def ban_track_from_recommendation(
|
|
4439
4473
|
self, track_id: str, **kwargs: Any
|
|
4440
4474
|
) -> BanTrackFromRecommendationBanTrackFromRecommendation:
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Generated by ariadne-codegen
|
|
2
|
+
# Source: queries
|
|
3
|
+
|
|
4
|
+
from typing import Optional
|
|
5
|
+
|
|
6
|
+
from pydantic import Field
|
|
7
|
+
|
|
8
|
+
from .base_model import BaseModel
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class MoveTrackInPlaylist(BaseModel):
|
|
12
|
+
move_track_in_playlist: "MoveTrackInPlaylistMoveTrackInPlaylist" = Field(
|
|
13
|
+
alias="moveTrackInPlaylist"
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class MoveTrackInPlaylistMoveTrackInPlaylist(BaseModel):
|
|
18
|
+
move_status: Optional[bool] = Field(alias="moveStatus")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
MoveTrackInPlaylist.model_rebuild()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: deezer-python-gql
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.21.0
|
|
4
4
|
Summary: Async typed Python client for Deezer's Pipe GraphQL API.
|
|
5
5
|
Author-email: Julian Daberkow <jdaberkow@users.noreply.github.com>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -16,13 +16,13 @@ Requires-Dist: pydantic>=2.0.0
|
|
|
16
16
|
Requires-Dist: yarl>=1.22.0
|
|
17
17
|
Provides-Extra: test
|
|
18
18
|
Requires-Dist: codespell==2.4.3; extra == "test"
|
|
19
|
-
Requires-Dist: mypy==2.
|
|
20
|
-
Requires-Dist: pre-commit==4.
|
|
19
|
+
Requires-Dist: mypy==2.4.0; extra == "test"
|
|
20
|
+
Requires-Dist: pre-commit==4.7.0; extra == "test"
|
|
21
21
|
Requires-Dist: pre-commit-hooks==6.0.0; extra == "test"
|
|
22
22
|
Requires-Dist: pytest==9.1.1; extra == "test"
|
|
23
|
-
Requires-Dist: pytest-asyncio==1.4.
|
|
23
|
+
Requires-Dist: pytest-asyncio==1.4.1; extra == "test"
|
|
24
24
|
Requires-Dist: pytest-cov==7.1.0; extra == "test"
|
|
25
|
-
Requires-Dist: ruff==0.
|
|
25
|
+
Requires-Dist: ruff==0.17.2; extra == "test"
|
|
26
26
|
Provides-Extra: dev
|
|
27
27
|
Requires-Dist: ariadne-codegen[subscriptions]; extra == "dev"
|
|
28
28
|
Dynamic: license-file
|
|
@@ -191,6 +191,7 @@ Keep a track or artist out of the user's recommendations (Flow, mixes).
|
|
|
191
191
|
| `delete_playlist(playlist_id)` | Delete a playlist |
|
|
192
192
|
| `add_tracks_to_playlist(playlist_id, track_ids)` | Add tracks to a playlist |
|
|
193
193
|
| `remove_tracks_from_playlist(playlist_id, ...)` | Remove tracks from a playlist |
|
|
194
|
+
| `move_track_in_playlist(playlist_id, ...)` | Move a track behind another one or to the top |
|
|
194
195
|
|
|
195
196
|
### Podcast Episode Management
|
|
196
197
|
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql.egg-info/SOURCES.txt
RENAMED
|
@@ -76,6 +76,7 @@ deezer_python_gql/generated/get_user_playlists.py
|
|
|
76
76
|
deezer_python_gql/generated/input_types.py
|
|
77
77
|
deezer_python_gql/generated/mark_as_not_played_podcast_episode.py
|
|
78
78
|
deezer_python_gql/generated/mark_as_played_podcast_episode.py
|
|
79
|
+
deezer_python_gql/generated/move_track_in_playlist.py
|
|
79
80
|
deezer_python_gql/generated/music_together_create_group.py
|
|
80
81
|
deezer_python_gql/generated/music_together_generate_group_name.py
|
|
81
82
|
deezer_python_gql/generated/music_together_join_group.py
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql.egg-info/requires.txt
RENAMED
|
@@ -7,10 +7,10 @@ ariadne-codegen[subscriptions]
|
|
|
7
7
|
|
|
8
8
|
[test]
|
|
9
9
|
codespell==2.4.3
|
|
10
|
-
mypy==2.
|
|
11
|
-
pre-commit==4.
|
|
10
|
+
mypy==2.4.0
|
|
11
|
+
pre-commit==4.7.0
|
|
12
12
|
pre-commit-hooks==6.0.0
|
|
13
13
|
pytest==9.1.1
|
|
14
|
-
pytest-asyncio==1.4.
|
|
14
|
+
pytest-asyncio==1.4.1
|
|
15
15
|
pytest-cov==7.1.0
|
|
16
|
-
ruff==0.
|
|
16
|
+
ruff==0.17.2
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "deezer-python-gql"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.21.0"
|
|
4
4
|
description = "Async typed Python client for Deezer's Pipe GraphQL API."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -24,13 +24,13 @@ text = "Apache-2.0"
|
|
|
24
24
|
[project.optional-dependencies]
|
|
25
25
|
test = [
|
|
26
26
|
"codespell==2.4.3",
|
|
27
|
-
"mypy==2.
|
|
28
|
-
"pre-commit==4.
|
|
27
|
+
"mypy==2.4.0",
|
|
28
|
+
"pre-commit==4.7.0",
|
|
29
29
|
"pre-commit-hooks==6.0.0",
|
|
30
30
|
"pytest==9.1.1",
|
|
31
|
-
"pytest-asyncio==1.4.
|
|
31
|
+
"pytest-asyncio==1.4.1",
|
|
32
32
|
"pytest-cov==7.1.0",
|
|
33
|
-
"ruff==0.
|
|
33
|
+
"ruff==0.17.2",
|
|
34
34
|
]
|
|
35
35
|
dev = [
|
|
36
36
|
"ariadne-codegen[subscriptions]",
|
|
@@ -182,5 +182,5 @@ asyncio_mode = "auto"
|
|
|
182
182
|
|
|
183
183
|
[tool.uv]
|
|
184
184
|
override-dependencies = [
|
|
185
|
-
"ruff==0.
|
|
185
|
+
"ruff==0.17.2",
|
|
186
186
|
]
|
|
@@ -105,6 +105,7 @@ from deezer_python_gql.generated.mark_as_not_played_podcast_episode import (
|
|
|
105
105
|
from deezer_python_gql.generated.mark_as_played_podcast_episode import (
|
|
106
106
|
MarkAsPlayedPodcastEpisode,
|
|
107
107
|
)
|
|
108
|
+
from deezer_python_gql.generated.move_track_in_playlist import MoveTrackInPlaylist
|
|
108
109
|
from deezer_python_gql.generated.music_together_create_group import (
|
|
109
110
|
MusicTogetherCreateGroup,
|
|
110
111
|
)
|
|
@@ -340,6 +341,7 @@ def test_client_has_generated_methods() -> None:
|
|
|
340
341
|
"delete_playlist",
|
|
341
342
|
"add_tracks_to_playlist",
|
|
342
343
|
"remove_tracks_from_playlist",
|
|
344
|
+
"move_track_in_playlist",
|
|
343
345
|
"get_podcast",
|
|
344
346
|
"get_podcast_episode",
|
|
345
347
|
"get_podcast_episodes_by_ids",
|
|
@@ -1523,6 +1525,13 @@ def test_smoke_remove_tracks_from_playlist() -> None:
|
|
|
1523
1525
|
assert result.remove_tracks_from_playlist.removed_track_ids == ["100000001", "100000002"]
|
|
1524
1526
|
|
|
1525
1527
|
|
|
1528
|
+
def test_smoke_move_track_in_playlist() -> None:
|
|
1529
|
+
"""Verify MoveTrackInPlaylist fixture parses with move status."""
|
|
1530
|
+
data = _load_fixture("move_track_in_playlist.json")
|
|
1531
|
+
result = MoveTrackInPlaylist.model_validate(data)
|
|
1532
|
+
assert result.move_track_in_playlist.move_status is True
|
|
1533
|
+
|
|
1534
|
+
|
|
1526
1535
|
def test_smoke_get_livestream() -> None:
|
|
1527
1536
|
"""Verify GetLivestream fixture parses with fields and media URLs."""
|
|
1528
1537
|
data = _load_fixture("get_livestream.json")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/base_client.py
RENAMED
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/base_model.py
RENAMED
|
File without changes
|
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/create_playlist.py
RENAMED
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/delete_playlist.py
RENAMED
|
File without changes
|
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/fragments.py
RENAMED
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_album.py
RENAMED
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_artist.py
RENAMED
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_artist_mix.py
RENAMED
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_audiobook.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_charts.py
RENAMED
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_family.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_flow.py
RENAMED
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_flow_batch.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_flow_tuner.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_livestream.py
RENAMED
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_made_for_me.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_playlist.py
RENAMED
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_podcast.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_track.py
RENAMED
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_track_mix.py
RENAMED
|
File without changes
|
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/get_user_charts.py
RENAMED
|
File without changes
|
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/input_types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/search_flows.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql/generated/update_playlist.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{deezer_python_gql-0.20.0 → deezer_python_gql-0.21.0}/deezer_python_gql.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|