spotify-apimatic-sdk 1.0.0__py3-none-any.whl

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.
Files changed (186) hide show
  1. spotify_apimatic_sdk-1.0.0.dist-info/METADATA +150 -0
  2. spotify_apimatic_sdk-1.0.0.dist-info/RECORD +186 -0
  3. spotify_apimatic_sdk-1.0.0.dist-info/WHEEL +5 -0
  4. spotify_apimatic_sdk-1.0.0.dist-info/licenses/LICENSE +30 -0
  5. spotify_apimatic_sdk-1.0.0.dist-info/top_level.txt +1 -0
  6. spotifywebapi/__init__.py +12 -0
  7. spotifywebapi/api_helper.py +19 -0
  8. spotifywebapi/configuration.py +318 -0
  9. spotifywebapi/controllers/__init__.py +20 -0
  10. spotifywebapi/controllers/albums_controller.py +498 -0
  11. spotifywebapi/controllers/artists_controller.py +327 -0
  12. spotifywebapi/controllers/audiobooks_controller.py +441 -0
  13. spotifywebapi/controllers/base_controller.py +67 -0
  14. spotifywebapi/controllers/categories_controller.py +161 -0
  15. spotifywebapi/controllers/chapters_controller.py +157 -0
  16. spotifywebapi/controllers/episodes_controller.py +390 -0
  17. spotifywebapi/controllers/genres_controller.py +84 -0
  18. spotifywebapi/controllers/markets_controller.py +82 -0
  19. spotifywebapi/controllers/o_auth_authorization_controller.py +156 -0
  20. spotifywebapi/controllers/player_controller.py +807 -0
  21. spotifywebapi/controllers/playlists_controller.py +851 -0
  22. spotifywebapi/controllers/search_controller.py +123 -0
  23. spotifywebapi/controllers/shows_controller.py +439 -0
  24. spotifywebapi/controllers/tracks_controller.py +821 -0
  25. spotifywebapi/controllers/users_controller.py +649 -0
  26. spotifywebapi/exceptions/__init__.py +11 -0
  27. spotifywebapi/exceptions/api_exception.py +36 -0
  28. spotifywebapi/exceptions/bad_request_exception.py +56 -0
  29. spotifywebapi/exceptions/forbidden_exception.py +56 -0
  30. spotifywebapi/exceptions/not_found_exception.py +56 -0
  31. spotifywebapi/exceptions/o_auth_provider_exception.py +73 -0
  32. spotifywebapi/exceptions/too_many_requests_exception.py +56 -0
  33. spotifywebapi/exceptions/unauthorized_exception.py +56 -0
  34. spotifywebapi/http/__init__.py +11 -0
  35. spotifywebapi/http/api_response.py +67 -0
  36. spotifywebapi/http/auth/__init__.py +5 -0
  37. spotifywebapi/http/auth/o_auth_2.py +336 -0
  38. spotifywebapi/http/http_call_back.py +20 -0
  39. spotifywebapi/http/http_client_provider.py +23 -0
  40. spotifywebapi/http/http_method_enum.py +25 -0
  41. spotifywebapi/http/http_request.py +55 -0
  42. spotifywebapi/http/http_response.py +45 -0
  43. spotifywebapi/http/proxy_settings.py +50 -0
  44. spotifywebapi/models/__init__.py +142 -0
  45. spotifywebapi/models/album_base.py +264 -0
  46. spotifywebapi/models/album_group_enum.py +51 -0
  47. spotifywebapi/models/album_object.py +375 -0
  48. spotifywebapi/models/album_restriction_object.py +109 -0
  49. spotifywebapi/models/album_type_enum.py +62 -0
  50. spotifywebapi/models/artist_discography_album_object.py +298 -0
  51. spotifywebapi/models/artist_object.py +335 -0
  52. spotifywebapi/models/audio_analysis_object.py +266 -0
  53. spotifywebapi/models/audio_features_object.py +518 -0
  54. spotifywebapi/models/audiobook_base.py +353 -0
  55. spotifywebapi/models/audiobook_object.py +369 -0
  56. spotifywebapi/models/author_object.py +85 -0
  57. spotifywebapi/models/categories.py +162 -0
  58. spotifywebapi/models/category_object.py +117 -0
  59. spotifywebapi/models/chapter_base.py +392 -0
  60. spotifywebapi/models/chapter_object.py +408 -0
  61. spotifywebapi/models/chapter_restriction_object.py +113 -0
  62. spotifywebapi/models/context_object.py +181 -0
  63. spotifywebapi/models/copyright_object.py +130 -0
  64. spotifywebapi/models/currently_playing_context_object.py +314 -0
  65. spotifywebapi/models/currently_playing_object.py +241 -0
  66. spotifywebapi/models/cursor_object.py +108 -0
  67. spotifywebapi/models/cursor_paged_artists.py +75 -0
  68. spotifywebapi/models/cursor_paging_object.py +183 -0
  69. spotifywebapi/models/cursor_paging_play_history_object.py +214 -0
  70. spotifywebapi/models/cursor_paging_simplified_artist_object.py +213 -0
  71. spotifywebapi/models/device_object.py +278 -0
  72. spotifywebapi/models/disallows_object.py +314 -0
  73. spotifywebapi/models/episode_base.py +394 -0
  74. spotifywebapi/models/episode_object.py +665 -0
  75. spotifywebapi/models/episode_restriction_object.py +112 -0
  76. spotifywebapi/models/error_object.py +85 -0
  77. spotifywebapi/models/explicit_content_settings_object.py +110 -0
  78. spotifywebapi/models/external_id_object.py +156 -0
  79. spotifywebapi/models/external_url_object.py +107 -0
  80. spotifywebapi/models/followers_object.py +134 -0
  81. spotifywebapi/models/image_object.py +168 -0
  82. spotifywebapi/models/include_external_enum.py +45 -0
  83. spotifywebapi/models/item_type_1_enum.py +56 -0
  84. spotifywebapi/models/item_type_2_enum.py +45 -0
  85. spotifywebapi/models/item_type_3_enum.py +45 -0
  86. spotifywebapi/models/item_type_enum.py +58 -0
  87. spotifywebapi/models/linked_track_object.py +205 -0
  88. spotifywebapi/models/many_albums.py +76 -0
  89. spotifywebapi/models/many_artists.py +76 -0
  90. spotifywebapi/models/many_audio_features.py +77 -0
  91. spotifywebapi/models/many_audiobooks.py +77 -0
  92. spotifywebapi/models/many_chapters.py +77 -0
  93. spotifywebapi/models/many_devices.py +76 -0
  94. spotifywebapi/models/many_episodes.py +77 -0
  95. spotifywebapi/models/many_genres.py +69 -0
  96. spotifywebapi/models/many_simplified_shows.py +74 -0
  97. spotifywebapi/models/many_tracks.py +76 -0
  98. spotifywebapi/models/markets.py +85 -0
  99. spotifywebapi/models/me_albums_request.py +90 -0
  100. spotifywebapi/models/me_episodes_request.py +73 -0
  101. spotifywebapi/models/me_episodes_request_1.py +89 -0
  102. spotifywebapi/models/me_following_request.py +74 -0
  103. spotifywebapi/models/me_following_request_1.py +90 -0
  104. spotifywebapi/models/me_player_play_request.py +165 -0
  105. spotifywebapi/models/me_player_request.py +103 -0
  106. spotifywebapi/models/me_shows_request.py +89 -0
  107. spotifywebapi/models/me_tracks_request.py +74 -0
  108. spotifywebapi/models/me_tracks_request_1.py +90 -0
  109. spotifywebapi/models/meta.py +227 -0
  110. spotifywebapi/models/mode_enum.py +52 -0
  111. spotifywebapi/models/narrator_object.py +85 -0
  112. spotifywebapi/models/o_auth_provider_error_enum.py +67 -0
  113. spotifywebapi/models/o_auth_scope_enum.py +98 -0
  114. spotifywebapi/models/o_auth_token.py +113 -0
  115. spotifywebapi/models/paged_albums.py +75 -0
  116. spotifywebapi/models/paged_categories.py +74 -0
  117. spotifywebapi/models/paging_artist_discography_album_object.py +163 -0
  118. spotifywebapi/models/paging_artist_object.py +162 -0
  119. spotifywebapi/models/paging_featured_playlist_object.py +113 -0
  120. spotifywebapi/models/paging_object.py +142 -0
  121. spotifywebapi/models/paging_playlist_object.py +163 -0
  122. spotifywebapi/models/paging_playlist_track_object.py +163 -0
  123. spotifywebapi/models/paging_saved_album_object.py +163 -0
  124. spotifywebapi/models/paging_saved_audiobook_object.py +163 -0
  125. spotifywebapi/models/paging_saved_episode_object.py +163 -0
  126. spotifywebapi/models/paging_saved_show_object.py +163 -0
  127. spotifywebapi/models/paging_saved_track_object.py +163 -0
  128. spotifywebapi/models/paging_simplified_album_object.py +163 -0
  129. spotifywebapi/models/paging_simplified_audiobook_object.py +162 -0
  130. spotifywebapi/models/paging_simplified_chapter_object.py +162 -0
  131. spotifywebapi/models/paging_simplified_episode_object.py +162 -0
  132. spotifywebapi/models/paging_simplified_show_object.py +160 -0
  133. spotifywebapi/models/paging_simplified_track_object.py +163 -0
  134. spotifywebapi/models/paging_track_object.py +162 -0
  135. spotifywebapi/models/play_history_object.py +141 -0
  136. spotifywebapi/models/playlist_object.py +425 -0
  137. spotifywebapi/models/playlist_owner_object.py +238 -0
  138. spotifywebapi/models/playlist_snapshot_id.py +85 -0
  139. spotifywebapi/models/playlist_track_object.py +171 -0
  140. spotifywebapi/models/playlist_tracks_ref_object.py +109 -0
  141. spotifywebapi/models/playlist_user_object.py +231 -0
  142. spotifywebapi/models/playlists_followers_request.py +86 -0
  143. spotifywebapi/models/playlists_request.py +160 -0
  144. spotifywebapi/models/playlists_tracks_request.py +121 -0
  145. spotifywebapi/models/playlists_tracks_request_1.py +188 -0
  146. spotifywebapi/models/playlists_tracks_request_2.py +109 -0
  147. spotifywebapi/models/private_user_object.py +379 -0
  148. spotifywebapi/models/public_user_object.py +268 -0
  149. spotifywebapi/models/queue_object.py +118 -0
  150. spotifywebapi/models/reason_enum.py +65 -0
  151. spotifywebapi/models/recommendation_seed_object.py +208 -0
  152. spotifywebapi/models/recommendations_object.py +96 -0
  153. spotifywebapi/models/release_date_precision_enum.py +62 -0
  154. spotifywebapi/models/resume_point_object.py +131 -0
  155. spotifywebapi/models/saved_album_object.py +118 -0
  156. spotifywebapi/models/saved_audiobook_object.py +118 -0
  157. spotifywebapi/models/saved_episode_object.py +116 -0
  158. spotifywebapi/models/saved_show_object.py +116 -0
  159. spotifywebapi/models/saved_track_object.py +118 -0
  160. spotifywebapi/models/search_items.py +256 -0
  161. spotifywebapi/models/section_object.py +362 -0
  162. spotifywebapi/models/segment_object.py +307 -0
  163. spotifywebapi/models/show_base.py +550 -0
  164. spotifywebapi/models/show_object.py +319 -0
  165. spotifywebapi/models/simplified_album_object.py +468 -0
  166. spotifywebapi/models/simplified_artist_object.py +228 -0
  167. spotifywebapi/models/simplified_playlist_object.py +398 -0
  168. spotifywebapi/models/simplified_track_object.py +494 -0
  169. spotifywebapi/models/time_interval_object.py +132 -0
  170. spotifywebapi/models/track.py +697 -0
  171. spotifywebapi/models/track_1.py +85 -0
  172. spotifywebapi/models/track_object.py +605 -0
  173. spotifywebapi/models/track_restriction_object.py +112 -0
  174. spotifywebapi/models/type_2_enum.py +56 -0
  175. spotifywebapi/models/type_3_enum.py +56 -0
  176. spotifywebapi/models/type_4_enum.py +56 -0
  177. spotifywebapi/models/type_5_enum.py +56 -0
  178. spotifywebapi/models/type_6_enum.py +56 -0
  179. spotifywebapi/models/type_8_enum.py +42 -0
  180. spotifywebapi/models/type_9_enum.py +42 -0
  181. spotifywebapi/models/type_enum.py +56 -0
  182. spotifywebapi/models/users_playlists_request.py +154 -0
  183. spotifywebapi/spotifywebapi_client.py +198 -0
  184. spotifywebapi/utilities/__init__.py +6 -0
  185. spotifywebapi/utilities/file_wrapper.py +45 -0
  186. spotifywebapi/utilities/union_type_lookup.py +113 -0
@@ -0,0 +1,162 @@
1
+ """spotifywebapi.
2
+
3
+ This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
4
+ """
5
+
6
+ # ruff: noqa: E501
7
+ from spotifywebapi.models.track_object import (
8
+ TrackObject,
9
+ )
10
+
11
+
12
+ class PagingTrackObject(object):
13
+ """Implementation of the 'PagingTrackObject' model.
14
+
15
+ Attributes:
16
+ href (str): A link to the Web API endpoint returning the full result of the
17
+ request
18
+ limit (int): The maximum number of items in the response (as set in the query
19
+ or by default).
20
+ next (str): URL to the next page of items. ( `null` if none)
21
+ offset (int): The offset of the items returned (as set in the query or by
22
+ default)
23
+ previous (str): URL to the previous page of items. ( `null` if none)
24
+ total (int): The total number of items available to return.
25
+ items (List[TrackObject]): The model property of type List[TrackObject].
26
+
27
+ """
28
+
29
+ # Create a mapping from Model property names to API property names
30
+ _names = {
31
+ "href": "href",
32
+ "limit": "limit",
33
+ "next": "next",
34
+ "offset": "offset",
35
+ "previous": "previous",
36
+ "total": "total",
37
+ "items": "items",
38
+ }
39
+
40
+ _nullables = [
41
+ "next",
42
+ "previous",
43
+ ]
44
+
45
+ def __init__(
46
+ self,
47
+ href=None,
48
+ limit=None,
49
+ next=None,
50
+ offset=None,
51
+ previous=None,
52
+ total=None,
53
+ items=None):
54
+ """Initialize a PagingTrackObject instance."""
55
+ # Initialize members of the class
56
+ self.href = href
57
+ self.limit = limit
58
+ self.next = next
59
+ self.offset = offset
60
+ self.previous = previous
61
+ self.total = total
62
+ self.items = items
63
+
64
+ @classmethod
65
+ def from_dictionary(cls,
66
+ dictionary):
67
+ """Create an instance of this model from a dictionary
68
+
69
+ Args:
70
+ dictionary (dictionary): A dictionary representation of the object
71
+ as obtained from the deserialization of the server's response. The
72
+ keys MUST match property names in the API description.
73
+
74
+ Returns:
75
+ object: An instance of this structure class.
76
+
77
+ """
78
+ if not isinstance(dictionary, dict) or dictionary is None:
79
+ return None
80
+
81
+ # Extract variables from the dictionary
82
+ href =\
83
+ dictionary.get("href")\
84
+ if dictionary.get("href")\
85
+ else None
86
+ limit =\
87
+ dictionary.get("limit")\
88
+ if dictionary.get("limit")\
89
+ else None
90
+ next =\
91
+ dictionary.get("next")\
92
+ if dictionary.get("next")\
93
+ else None
94
+ offset =\
95
+ dictionary.get("offset")\
96
+ if dictionary.get("offset")\
97
+ else None
98
+ previous =\
99
+ dictionary.get("previous")\
100
+ if dictionary.get("previous")\
101
+ else None
102
+ total =\
103
+ dictionary.get("total")\
104
+ if dictionary.get("total")\
105
+ else None
106
+ items = None
107
+ if dictionary.get("items") is not None:
108
+ items = [
109
+ TrackObject.from_dictionary(x)
110
+ for x in dictionary.get("items")
111
+ ]
112
+
113
+ # Return an object of this model
114
+ return cls(href,
115
+ limit,
116
+ next,
117
+ offset,
118
+ previous,
119
+ total,
120
+ items)
121
+
122
+ def __repr__(self):
123
+ """Return a unambiguous string representation."""
124
+ _href=self.href
125
+ _limit=self.limit
126
+ _next=self.next
127
+ _offset=self.offset
128
+ _previous=self.previous
129
+ _total=self.total
130
+ _items=self.items
131
+ return (
132
+ f"{self.__class__.__name__}("
133
+ f"href={_href!r}, "
134
+ f"limit={_limit!r}, "
135
+ f"next={_next!r}, "
136
+ f"offset={_offset!r}, "
137
+ f"previous={_previous!r}, "
138
+ f"total={_total!r}, "
139
+ f"items={_items!r}, "
140
+ f")"
141
+ )
142
+
143
+ def __str__(self):
144
+ """Return a human-readable string representation."""
145
+ _href=self.href
146
+ _limit=self.limit
147
+ _next=self.next
148
+ _offset=self.offset
149
+ _previous=self.previous
150
+ _total=self.total
151
+ _items=self.items
152
+ return (
153
+ f"{self.__class__.__name__}("
154
+ f"href={_href!s}, "
155
+ f"limit={_limit!s}, "
156
+ f"next={_next!s}, "
157
+ f"offset={_offset!s}, "
158
+ f"previous={_previous!s}, "
159
+ f"total={_total!s}, "
160
+ f"items={_items!s}, "
161
+ f")"
162
+ )
@@ -0,0 +1,141 @@
1
+ """spotifywebapi.
2
+
3
+ This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
4
+ """
5
+
6
+ # ruff: noqa: E501
7
+ from spotifywebapi.api_helper import APIHelper
8
+ from spotifywebapi.models.context_object import (
9
+ ContextObject,
10
+ )
11
+ from spotifywebapi.models.track_object import (
12
+ TrackObject,
13
+ )
14
+
15
+
16
+ class PlayHistoryObject(object):
17
+ """Implementation of the 'PlayHistoryObject' model.
18
+
19
+ Attributes:
20
+ track (TrackObject): The track the user listened to.
21
+ played_at (datetime): The date and time the track was played.
22
+ context (ContextObject): The context the track was played from.
23
+
24
+ """
25
+
26
+ # Create a mapping from Model property names to API property names
27
+ _names = {
28
+ "track": "track",
29
+ "played_at": "played_at",
30
+ "context": "context",
31
+ }
32
+
33
+ _optionals = [
34
+ "track",
35
+ "played_at",
36
+ "context",
37
+ ]
38
+
39
+ def __init__(
40
+ self,
41
+ track=APIHelper.SKIP,
42
+ played_at=APIHelper.SKIP,
43
+ context=APIHelper.SKIP):
44
+ """Initialize a PlayHistoryObject instance."""
45
+ # Initialize members of the class
46
+ if track is not APIHelper.SKIP:
47
+ self.track = track
48
+ if played_at is not APIHelper.SKIP:
49
+ self.played_at =\
50
+ APIHelper.apply_datetime_converter(
51
+ played_at, APIHelper.RFC3339DateTime)\
52
+ if played_at else None
53
+ if context is not APIHelper.SKIP:
54
+ self.context = context
55
+
56
+ @classmethod
57
+ def from_dictionary(cls,
58
+ dictionary):
59
+ """Create an instance of this model from a dictionary
60
+
61
+ Args:
62
+ dictionary (dictionary): A dictionary representation of the object
63
+ as obtained from the deserialization of the server's response. The
64
+ keys MUST match property names in the API description.
65
+
66
+ Returns:
67
+ object: An instance of this structure class.
68
+
69
+ """
70
+ if not isinstance(dictionary, dict) or dictionary is None:
71
+ return None
72
+
73
+ # Extract variables from the dictionary
74
+ track =\
75
+ TrackObject.from_dictionary(
76
+ dictionary.get("track"))\
77
+ if "track" in dictionary.keys()\
78
+ else APIHelper.SKIP
79
+ played_at = APIHelper.RFC3339DateTime.from_value(
80
+ dictionary.get("played_at")).datetime\
81
+ if dictionary.get("played_at") else APIHelper.SKIP
82
+ context =\
83
+ ContextObject.from_dictionary(
84
+ dictionary.get("context"))\
85
+ if "context" in dictionary.keys()\
86
+ else APIHelper.SKIP
87
+
88
+ # Return an object of this model
89
+ return cls(track,
90
+ played_at,
91
+ context)
92
+
93
+ def __repr__(self):
94
+ """Return a unambiguous string representation."""
95
+ _track=(
96
+ self.track
97
+ if hasattr(self, "track")
98
+ else None
99
+ )
100
+ _played_at=(
101
+ self.played_at
102
+ if hasattr(self, "played_at")
103
+ else None
104
+ )
105
+ _context=(
106
+ self.context
107
+ if hasattr(self, "context")
108
+ else None
109
+ )
110
+ return (
111
+ f"{self.__class__.__name__}("
112
+ f"track={_track!r}, "
113
+ f"played_at={_played_at!r}, "
114
+ f"context={_context!r}, "
115
+ f")"
116
+ )
117
+
118
+ def __str__(self):
119
+ """Return a human-readable string representation."""
120
+ _track=(
121
+ self.track
122
+ if hasattr(self, "track")
123
+ else None
124
+ )
125
+ _played_at=(
126
+ self.played_at
127
+ if hasattr(self, "played_at")
128
+ else None
129
+ )
130
+ _context=(
131
+ self.context
132
+ if hasattr(self, "context")
133
+ else None
134
+ )
135
+ return (
136
+ f"{self.__class__.__name__}("
137
+ f"track={_track!s}, "
138
+ f"played_at={_played_at!s}, "
139
+ f"context={_context!s}, "
140
+ f")"
141
+ )