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,118 @@
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.album_object import (
9
+ AlbumObject,
10
+ )
11
+
12
+
13
+ class SavedAlbumObject(object):
14
+ """Implementation of the 'SavedAlbumObject' model.
15
+
16
+ Attributes:
17
+ added_at (datetime): The date and time the album was saved Timestamps are
18
+ returned in ISO 8601 format as Coordinated Universal Time (UTC) with a
19
+ zero offset: YYYY-MM-DDTHH:MM:SSZ. If the time is imprecise (for example,
20
+ the date/time of an album release), an additional field indicates the
21
+ precision; see for example, release_date in an album object.
22
+ album (AlbumObject): Information about the album.
23
+
24
+ """
25
+
26
+ # Create a mapping from Model property names to API property names
27
+ _names = {
28
+ "added_at": "added_at",
29
+ "album": "album",
30
+ }
31
+
32
+ _optionals = [
33
+ "added_at",
34
+ "album",
35
+ ]
36
+
37
+ def __init__(
38
+ self,
39
+ added_at=APIHelper.SKIP,
40
+ album=APIHelper.SKIP):
41
+ """Initialize a SavedAlbumObject instance."""
42
+ # Initialize members of the class
43
+ if added_at is not APIHelper.SKIP:
44
+ self.added_at =\
45
+ APIHelper.apply_datetime_converter(
46
+ added_at, APIHelper.RFC3339DateTime)\
47
+ if added_at else None
48
+ if album is not APIHelper.SKIP:
49
+ self.album = album
50
+
51
+ @classmethod
52
+ def from_dictionary(cls,
53
+ dictionary):
54
+ """Create an instance of this model from a dictionary
55
+
56
+ Args:
57
+ dictionary (dictionary): A dictionary representation of the object
58
+ as obtained from the deserialization of the server's response. The
59
+ keys MUST match property names in the API description.
60
+
61
+ Returns:
62
+ object: An instance of this structure class.
63
+
64
+ """
65
+ if not isinstance(dictionary, dict) or dictionary is None:
66
+ return None
67
+
68
+ # Extract variables from the dictionary
69
+ added_at = APIHelper.RFC3339DateTime.from_value(
70
+ dictionary.get("added_at")).datetime\
71
+ if dictionary.get("added_at") else APIHelper.SKIP
72
+ album =\
73
+ AlbumObject.from_dictionary(
74
+ dictionary.get("album"))\
75
+ if "album" in dictionary.keys()\
76
+ else APIHelper.SKIP
77
+
78
+ # Return an object of this model
79
+ return cls(added_at,
80
+ album)
81
+
82
+ def __repr__(self):
83
+ """Return a unambiguous string representation."""
84
+ _added_at=(
85
+ self.added_at
86
+ if hasattr(self, "added_at")
87
+ else None
88
+ )
89
+ _album=(
90
+ self.album
91
+ if hasattr(self, "album")
92
+ else None
93
+ )
94
+ return (
95
+ f"{self.__class__.__name__}("
96
+ f"added_at={_added_at!r}, "
97
+ f"album={_album!r}, "
98
+ f")"
99
+ )
100
+
101
+ def __str__(self):
102
+ """Return a human-readable string representation."""
103
+ _added_at=(
104
+ self.added_at
105
+ if hasattr(self, "added_at")
106
+ else None
107
+ )
108
+ _album=(
109
+ self.album
110
+ if hasattr(self, "album")
111
+ else None
112
+ )
113
+ return (
114
+ f"{self.__class__.__name__}("
115
+ f"added_at={_added_at!s}, "
116
+ f"album={_album!s}, "
117
+ f")"
118
+ )
@@ -0,0 +1,118 @@
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.audiobook_object import (
9
+ AudiobookObject,
10
+ )
11
+
12
+
13
+ class SavedAudiobookObject(object):
14
+ """Implementation of the 'SavedAudiobookObject' model.
15
+
16
+ Attributes:
17
+ added_at (datetime): The date and time the audiobook was saved Timestamps are
18
+ returned in ISO 8601 format as Coordinated Universal Time (UTC) with a
19
+ zero offset: YYYY-MM-DDTHH:MM:SSZ. If the time is imprecise (for example,
20
+ the date/time of an album release), an additional field indicates the
21
+ precision; see for example, release_date in an album object.
22
+ audiobook (AudiobookObject): Information about the audiobook.
23
+
24
+ """
25
+
26
+ # Create a mapping from Model property names to API property names
27
+ _names = {
28
+ "added_at": "added_at",
29
+ "audiobook": "audiobook",
30
+ }
31
+
32
+ _optionals = [
33
+ "added_at",
34
+ "audiobook",
35
+ ]
36
+
37
+ def __init__(
38
+ self,
39
+ added_at=APIHelper.SKIP,
40
+ audiobook=APIHelper.SKIP):
41
+ """Initialize a SavedAudiobookObject instance."""
42
+ # Initialize members of the class
43
+ if added_at is not APIHelper.SKIP:
44
+ self.added_at =\
45
+ APIHelper.apply_datetime_converter(
46
+ added_at, APIHelper.RFC3339DateTime)\
47
+ if added_at else None
48
+ if audiobook is not APIHelper.SKIP:
49
+ self.audiobook = audiobook
50
+
51
+ @classmethod
52
+ def from_dictionary(cls,
53
+ dictionary):
54
+ """Create an instance of this model from a dictionary
55
+
56
+ Args:
57
+ dictionary (dictionary): A dictionary representation of the object
58
+ as obtained from the deserialization of the server's response. The
59
+ keys MUST match property names in the API description.
60
+
61
+ Returns:
62
+ object: An instance of this structure class.
63
+
64
+ """
65
+ if not isinstance(dictionary, dict) or dictionary is None:
66
+ return None
67
+
68
+ # Extract variables from the dictionary
69
+ added_at = APIHelper.RFC3339DateTime.from_value(
70
+ dictionary.get("added_at")).datetime\
71
+ if dictionary.get("added_at") else APIHelper.SKIP
72
+ audiobook =\
73
+ AudiobookObject.from_dictionary(
74
+ dictionary.get("audiobook"))\
75
+ if "audiobook" in dictionary.keys()\
76
+ else APIHelper.SKIP
77
+
78
+ # Return an object of this model
79
+ return cls(added_at,
80
+ audiobook)
81
+
82
+ def __repr__(self):
83
+ """Return a unambiguous string representation."""
84
+ _added_at=(
85
+ self.added_at
86
+ if hasattr(self, "added_at")
87
+ else None
88
+ )
89
+ _audiobook=(
90
+ self.audiobook
91
+ if hasattr(self, "audiobook")
92
+ else None
93
+ )
94
+ return (
95
+ f"{self.__class__.__name__}("
96
+ f"added_at={_added_at!r}, "
97
+ f"audiobook={_audiobook!r}, "
98
+ f")"
99
+ )
100
+
101
+ def __str__(self):
102
+ """Return a human-readable string representation."""
103
+ _added_at=(
104
+ self.added_at
105
+ if hasattr(self, "added_at")
106
+ else None
107
+ )
108
+ _audiobook=(
109
+ self.audiobook
110
+ if hasattr(self, "audiobook")
111
+ else None
112
+ )
113
+ return (
114
+ f"{self.__class__.__name__}("
115
+ f"added_at={_added_at!s}, "
116
+ f"audiobook={_audiobook!s}, "
117
+ f")"
118
+ )
@@ -0,0 +1,116 @@
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.episode_object import (
9
+ EpisodeObject,
10
+ )
11
+
12
+
13
+ class SavedEpisodeObject(object):
14
+ """Implementation of the 'SavedEpisodeObject' model.
15
+
16
+ Attributes:
17
+ added_at (datetime): The date and time the episode was saved. Timestamps are
18
+ returned in ISO 8601 format as Coordinated Universal Time (UTC) with a
19
+ zero offset: YYYY-MM-DDTHH:MM:SSZ.
20
+ episode (EpisodeObject): Information about the episode.
21
+
22
+ """
23
+
24
+ # Create a mapping from Model property names to API property names
25
+ _names = {
26
+ "added_at": "added_at",
27
+ "episode": "episode",
28
+ }
29
+
30
+ _optionals = [
31
+ "added_at",
32
+ "episode",
33
+ ]
34
+
35
+ def __init__(
36
+ self,
37
+ added_at=APIHelper.SKIP,
38
+ episode=APIHelper.SKIP):
39
+ """Initialize a SavedEpisodeObject instance."""
40
+ # Initialize members of the class
41
+ if added_at is not APIHelper.SKIP:
42
+ self.added_at =\
43
+ APIHelper.apply_datetime_converter(
44
+ added_at, APIHelper.RFC3339DateTime)\
45
+ if added_at else None
46
+ if episode is not APIHelper.SKIP:
47
+ self.episode = episode
48
+
49
+ @classmethod
50
+ def from_dictionary(cls,
51
+ dictionary):
52
+ """Create an instance of this model from a dictionary
53
+
54
+ Args:
55
+ dictionary (dictionary): A dictionary representation of the object
56
+ as obtained from the deserialization of the server's response. The
57
+ keys MUST match property names in the API description.
58
+
59
+ Returns:
60
+ object: An instance of this structure class.
61
+
62
+ """
63
+ if not isinstance(dictionary, dict) or dictionary is None:
64
+ return None
65
+
66
+ # Extract variables from the dictionary
67
+ added_at = APIHelper.RFC3339DateTime.from_value(
68
+ dictionary.get("added_at")).datetime\
69
+ if dictionary.get("added_at") else APIHelper.SKIP
70
+ episode =\
71
+ EpisodeObject.from_dictionary(
72
+ dictionary.get("episode"))\
73
+ if "episode" in dictionary.keys()\
74
+ else APIHelper.SKIP
75
+
76
+ # Return an object of this model
77
+ return cls(added_at,
78
+ episode)
79
+
80
+ def __repr__(self):
81
+ """Return a unambiguous string representation."""
82
+ _added_at=(
83
+ self.added_at
84
+ if hasattr(self, "added_at")
85
+ else None
86
+ )
87
+ _episode=(
88
+ self.episode
89
+ if hasattr(self, "episode")
90
+ else None
91
+ )
92
+ return (
93
+ f"{self.__class__.__name__}("
94
+ f"added_at={_added_at!r}, "
95
+ f"episode={_episode!r}, "
96
+ f")"
97
+ )
98
+
99
+ def __str__(self):
100
+ """Return a human-readable string representation."""
101
+ _added_at=(
102
+ self.added_at
103
+ if hasattr(self, "added_at")
104
+ else None
105
+ )
106
+ _episode=(
107
+ self.episode
108
+ if hasattr(self, "episode")
109
+ else None
110
+ )
111
+ return (
112
+ f"{self.__class__.__name__}("
113
+ f"added_at={_added_at!s}, "
114
+ f"episode={_episode!s}, "
115
+ f")"
116
+ )
@@ -0,0 +1,116 @@
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.show_base import ShowBase
9
+
10
+
11
+ class SavedShowObject(object):
12
+ """Implementation of the 'SavedShowObject' model.
13
+
14
+ Attributes:
15
+ added_at (datetime): The date and time the show was saved. Timestamps are
16
+ returned in ISO 8601 format as Coordinated Universal Time (UTC) with a
17
+ zero offset: YYYY-MM-DDTHH:MM:SSZ. If the time is imprecise (for example,
18
+ the date/time of an album release), an additional field indicates the
19
+ precision; see for example, release_date in an album object.
20
+ show (ShowBase): Information about the show.
21
+
22
+ """
23
+
24
+ # Create a mapping from Model property names to API property names
25
+ _names = {
26
+ "added_at": "added_at",
27
+ "show": "show",
28
+ }
29
+
30
+ _optionals = [
31
+ "added_at",
32
+ "show",
33
+ ]
34
+
35
+ def __init__(
36
+ self,
37
+ added_at=APIHelper.SKIP,
38
+ show=APIHelper.SKIP):
39
+ """Initialize a SavedShowObject instance."""
40
+ # Initialize members of the class
41
+ if added_at is not APIHelper.SKIP:
42
+ self.added_at =\
43
+ APIHelper.apply_datetime_converter(
44
+ added_at, APIHelper.RFC3339DateTime)\
45
+ if added_at else None
46
+ if show is not APIHelper.SKIP:
47
+ self.show = show
48
+
49
+ @classmethod
50
+ def from_dictionary(cls,
51
+ dictionary):
52
+ """Create an instance of this model from a dictionary
53
+
54
+ Args:
55
+ dictionary (dictionary): A dictionary representation of the object
56
+ as obtained from the deserialization of the server's response. The
57
+ keys MUST match property names in the API description.
58
+
59
+ Returns:
60
+ object: An instance of this structure class.
61
+
62
+ """
63
+ if not isinstance(dictionary, dict) or dictionary is None:
64
+ return None
65
+
66
+ # Extract variables from the dictionary
67
+ added_at = APIHelper.RFC3339DateTime.from_value(
68
+ dictionary.get("added_at")).datetime\
69
+ if dictionary.get("added_at") else APIHelper.SKIP
70
+ show =\
71
+ ShowBase.from_dictionary(
72
+ dictionary.get("show"))\
73
+ if "show" in dictionary.keys()\
74
+ else APIHelper.SKIP
75
+
76
+ # Return an object of this model
77
+ return cls(added_at,
78
+ show)
79
+
80
+ def __repr__(self):
81
+ """Return a unambiguous string representation."""
82
+ _added_at=(
83
+ self.added_at
84
+ if hasattr(self, "added_at")
85
+ else None
86
+ )
87
+ _show=(
88
+ self.show
89
+ if hasattr(self, "show")
90
+ else None
91
+ )
92
+ return (
93
+ f"{self.__class__.__name__}("
94
+ f"added_at={_added_at!r}, "
95
+ f"show={_show!r}, "
96
+ f")"
97
+ )
98
+
99
+ def __str__(self):
100
+ """Return a human-readable string representation."""
101
+ _added_at=(
102
+ self.added_at
103
+ if hasattr(self, "added_at")
104
+ else None
105
+ )
106
+ _show=(
107
+ self.show
108
+ if hasattr(self, "show")
109
+ else None
110
+ )
111
+ return (
112
+ f"{self.__class__.__name__}("
113
+ f"added_at={_added_at!s}, "
114
+ f"show={_show!s}, "
115
+ f")"
116
+ )
@@ -0,0 +1,118 @@
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.track_object import (
9
+ TrackObject,
10
+ )
11
+
12
+
13
+ class SavedTrackObject(object):
14
+ """Implementation of the 'SavedTrackObject' model.
15
+
16
+ Attributes:
17
+ added_at (datetime): The date and time the track was saved. Timestamps are
18
+ returned in ISO 8601 format as Coordinated Universal Time (UTC) with a
19
+ zero offset: YYYY-MM-DDTHH:MM:SSZ. If the time is imprecise (for example,
20
+ the date/time of an album release), an additional field indicates the
21
+ precision; see for example, release_date in an album object.
22
+ track (TrackObject): Information about the track.
23
+
24
+ """
25
+
26
+ # Create a mapping from Model property names to API property names
27
+ _names = {
28
+ "added_at": "added_at",
29
+ "track": "track",
30
+ }
31
+
32
+ _optionals = [
33
+ "added_at",
34
+ "track",
35
+ ]
36
+
37
+ def __init__(
38
+ self,
39
+ added_at=APIHelper.SKIP,
40
+ track=APIHelper.SKIP):
41
+ """Initialize a SavedTrackObject instance."""
42
+ # Initialize members of the class
43
+ if added_at is not APIHelper.SKIP:
44
+ self.added_at =\
45
+ APIHelper.apply_datetime_converter(
46
+ added_at, APIHelper.RFC3339DateTime)\
47
+ if added_at else None
48
+ if track is not APIHelper.SKIP:
49
+ self.track = track
50
+
51
+ @classmethod
52
+ def from_dictionary(cls,
53
+ dictionary):
54
+ """Create an instance of this model from a dictionary
55
+
56
+ Args:
57
+ dictionary (dictionary): A dictionary representation of the object
58
+ as obtained from the deserialization of the server's response. The
59
+ keys MUST match property names in the API description.
60
+
61
+ Returns:
62
+ object: An instance of this structure class.
63
+
64
+ """
65
+ if not isinstance(dictionary, dict) or dictionary is None:
66
+ return None
67
+
68
+ # Extract variables from the dictionary
69
+ added_at = APIHelper.RFC3339DateTime.from_value(
70
+ dictionary.get("added_at")).datetime\
71
+ if dictionary.get("added_at") else APIHelper.SKIP
72
+ track =\
73
+ TrackObject.from_dictionary(
74
+ dictionary.get("track"))\
75
+ if "track" in dictionary.keys()\
76
+ else APIHelper.SKIP
77
+
78
+ # Return an object of this model
79
+ return cls(added_at,
80
+ track)
81
+
82
+ def __repr__(self):
83
+ """Return a unambiguous string representation."""
84
+ _added_at=(
85
+ self.added_at
86
+ if hasattr(self, "added_at")
87
+ else None
88
+ )
89
+ _track=(
90
+ self.track
91
+ if hasattr(self, "track")
92
+ else None
93
+ )
94
+ return (
95
+ f"{self.__class__.__name__}("
96
+ f"added_at={_added_at!r}, "
97
+ f"track={_track!r}, "
98
+ f")"
99
+ )
100
+
101
+ def __str__(self):
102
+ """Return a human-readable string representation."""
103
+ _added_at=(
104
+ self.added_at
105
+ if hasattr(self, "added_at")
106
+ else None
107
+ )
108
+ _track=(
109
+ self.track
110
+ if hasattr(self, "track")
111
+ else None
112
+ )
113
+ return (
114
+ f"{self.__class__.__name__}("
115
+ f"added_at={_added_at!s}, "
116
+ f"track={_track!s}, "
117
+ f")"
118
+ )