spotifywebapiPython 1.0.287__py3-none-any.whl → 1.0.289__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 (24) hide show
  1. spotifywebapipython/const.py +1 -1
  2. spotifywebapipython/docs/__init__.html +15 -2
  3. spotifywebapipython/docs/index.html +2 -2
  4. spotifywebapipython/docs/search.js +1 -1
  5. spotifywebapipython/docs/spotifywebapipython/const.html +3 -3
  6. spotifywebapipython/docs/spotifywebapipython/saappmessages.html +2 -2
  7. spotifywebapipython/docs/spotifywebapipython/sautils.html +2 -2
  8. spotifywebapipython/docs/spotifywebapipython/spotifyapierror.html +2 -2
  9. spotifywebapipython/docs/spotifywebapipython/spotifyapimessage.html +2 -2
  10. spotifywebapipython/docs/spotifywebapipython/spotifyauthtoken.html +2 -2
  11. spotifywebapipython/docs/spotifywebapipython/spotifyclient.html +61 -6
  12. spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html +2 -2
  13. spotifywebapipython/docs/spotifywebapipython/spotifymediatypes.html +2 -2
  14. spotifywebapipython/docs/spotifywebapipython/spotifytypeprefixes.html +2 -2
  15. spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html +2 -2
  16. spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html +24 -2
  17. spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html +2 -2
  18. spotifywebapipython/spotifyclient.py +108 -12
  19. spotifywebapipython/spotifywebapierror.py +24 -0
  20. {spotifywebapipython-1.0.287.dist-info → spotifywebapipython-1.0.289.dist-info}/METADATA +1 -1
  21. {spotifywebapipython-1.0.287.dist-info → spotifywebapipython-1.0.289.dist-info}/RECORD +24 -24
  22. {spotifywebapipython-1.0.287.dist-info → spotifywebapipython-1.0.289.dist-info}/LICENSE +0 -0
  23. {spotifywebapipython-1.0.287.dist-info → spotifywebapipython-1.0.289.dist-info}/WHEEL +0 -0
  24. {spotifywebapipython-1.0.287.dist-info → spotifywebapipython-1.0.289.dist-info}/top_level.txt +0 -0
@@ -9,7 +9,7 @@
9
9
  </title>
10
10
  <link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20role%3D%22img%22%20aria-label%3D%22pdoc%20logo%22%20width%3D%22300%22%20height%3D%22150%22%20viewBox%3D%22-1%200%2060%2030%22%3E%3Ctitle%3Epdoc%3C/title%3E%3Cpath%20d%3D%22M29.621%2021.293c-.011-.273-.214-.475-.511-.481a.5.5%200%200%200-.489.503l-.044%201.393c-.097.551-.695%201.215-1.566%201.704-.577.428-1.306.486-2.193.182-1.426-.617-2.467-1.654-3.304-2.487l-.173-.172a3.43%203.43%200%200%200-.365-.306.49.49%200%200%200-.286-.196c-1.718-1.06-4.931-1.47-7.353.191l-.219.15c-1.707%201.187-3.413%202.131-4.328%201.03-.02-.027-.49-.685-.141-1.763.233-.721.546-2.408.772-4.076.042-.09.067-.187.046-.288.166-1.347.277-2.625.241-3.351%201.378-1.008%202.271-2.586%202.271-4.362%200-.976-.272-1.935-.788-2.774-.057-.094-.122-.18-.184-.268.033-.167.052-.339.052-.516%200-1.477-1.202-2.679-2.679-2.679-.791%200-1.496.352-1.987.9a6.3%206.3%200%200%200-1.001.029c-.492-.564-1.207-.929-2.012-.929-1.477%200-2.679%201.202-2.679%202.679A2.65%202.65%200%200%200%20.97%206.554c-.383.747-.595%201.572-.595%202.41%200%202.311%201.507%204.29%203.635%205.107-.037.699-.147%202.27-.423%203.294l-.137.461c-.622%202.042-2.515%208.257%201.727%2010.643%201.614.908%203.06%201.248%204.317%201.248%202.665%200%204.492-1.524%205.322-2.401%201.476-1.559%202.886-1.854%206.491.82%201.877%201.393%203.514%201.753%204.861%201.068%202.223-1.713%202.811-3.867%203.399-6.374.077-.846.056-1.469.054-1.537zm-4.835%204.313c-.054.305-.156.586-.242.629-.034-.007-.131-.022-.307-.157-.145-.111-.314-.478-.456-.908.221.121.432.25.675.355.115.039.219.051.33.081zm-2.251-1.238c-.05.33-.158.648-.252.694-.022.001-.125-.018-.307-.157-.217-.166-.488-.906-.639-1.573.358.344.754.693%201.198%201.036zm-3.887-2.337c-.006-.116-.018-.231-.041-.342.635.145%201.189.368%201.599.625.097.231.166.481.174.642-.03.049-.055.101-.067.158-.046.013-.128.026-.298.004-.278-.037-.901-.57-1.367-1.087zm-1.127-.497c.116.306.176.625.12.71-.019.014-.117.045-.345.016-.206-.027-.604-.332-.986-.695.41-.051.816-.056%201.211-.031zm-4.535%201.535c.209.22.379.47.358.598-.006.041-.088.138-.351.234-.144.055-.539-.063-.979-.259a11.66%2011.66%200%200%200%20.972-.573zm.983-.664c.359-.237.738-.418%201.126-.554.25.237.479.548.457.694-.006.042-.087.138-.351.235-.174.064-.694-.105-1.232-.375zm-3.381%201.794c-.022.145-.061.29-.149.401-.133.166-.358.248-.69.251h-.002c-.133%200-.306-.26-.45-.621.417.091.854.07%201.291-.031zm-2.066-8.077a4.78%204.78%200%200%201-.775-.584c.172-.115.505-.254.88-.378l-.105.962zm-.331%202.302a10.32%2010.32%200%200%201-.828-.502c.202-.143.576-.328.984-.49l-.156.992zm-.45%202.157l-.701-.403c.214-.115.536-.249.891-.376a11.57%2011.57%200%200%201-.19.779zm-.181%201.716c.064.398.194.702.298.893-.194-.051-.435-.162-.736-.398.061-.119.224-.3.438-.495zM8.87%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zm-.735-.389a1.15%201.15%200%200%200-.314.783%201.16%201.16%200%200%200%201.162%201.162c.457%200%20.842-.27%201.032-.653.026.117.042.238.042.362a1.68%201.68%200%200%201-1.679%201.679%201.68%201.68%200%200%201-1.679-1.679c0-.843.626-1.535%201.436-1.654zM5.059%205.406A1.68%201.68%200%200%201%203.38%207.085a1.68%201.68%200%200%201-1.679-1.679c0-.037.009-.072.011-.109.21.3.541.508.935.508a1.16%201.16%200%200%200%201.162-1.162%201.14%201.14%200%200%200-.474-.912c.015%200%20.03-.005.045-.005.926.001%201.679.754%201.679%201.68zM3.198%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zM1.375%208.964c0-.52.103-1.035.288-1.52.466.394%201.06.64%201.717.64%201.144%200%202.116-.725%202.499-1.738.383%201.012%201.355%201.738%202.499%201.738.867%200%201.631-.421%202.121-1.062.307.605.478%201.267.478%201.942%200%202.486-2.153%204.51-4.801%204.51s-4.801-2.023-4.801-4.51zm24.342%2019.349c-.985.498-2.267.168-3.813-.979-3.073-2.281-5.453-3.199-7.813-.705-1.315%201.391-4.163%203.365-8.423.97-3.174-1.786-2.239-6.266-1.261-9.479l.146-.492c.276-1.02.395-2.457.444-3.268a6.11%206.11%200%200%200%201.18.115%206.01%206.01%200%200%200%202.536-.562l-.006.175c-.802.215-1.848.612-2.021%201.25-.079.295.021.601.274.837.219.203.415.364.598.501-.667.304-1.243.698-1.311%201.179-.02.144-.022.507.393.787.213.144.395.26.564.365-1.285.521-1.361.96-1.381%201.126-.018.142-.011.496.427.746l.854.489c-.473.389-.971.914-.999%201.429-.018.278.095.532.316.713.675.556%201.231.721%201.653.721.059%200%20.104-.014.158-.02.207.707.641%201.64%201.513%201.64h.013c.8-.008%201.236-.345%201.462-.626.173-.216.268-.457.325-.692.424.195.93.374%201.372.374.151%200%20.294-.021.423-.068.732-.27.944-.704.993-1.021.009-.061.003-.119.002-.179.266.086.538.147.789.147.15%200%20.294-.021.423-.069.542-.2.797-.489.914-.754.237.147.478.258.704.288.106.014.205.021.296.021.356%200%20.595-.101.767-.229.438.435%201.094.992%201.656%201.067.106.014.205.021.296.021a1.56%201.56%200%200%200%20.323-.035c.17.575.453%201.289.866%201.605.358.273.665.362.914.362a.99.99%200%200%200%20.421-.093%201.03%201.03%200%200%200%20.245-.164c.168.428.39.846.68%201.068.358.273.665.362.913.362a.99.99%200%200%200%20.421-.093c.317-.148.512-.448.639-.762.251.157.495.257.726.257.127%200%20.25-.024.37-.071.427-.17.706-.617.841-1.314.022-.015.047-.022.068-.038.067-.051.133-.104.196-.159-.443%201.486-1.107%202.761-2.086%203.257zM8.66%209.925a.5.5%200%201%200-1%200c0%20.653-.818%201.205-1.787%201.205s-1.787-.552-1.787-1.205a.5.5%200%201%200-1%200c0%201.216%201.25%202.205%202.787%202.205s2.787-.989%202.787-2.205zm4.4%2015.965l-.208.097c-2.661%201.258-4.708%201.436-6.086.527-1.542-1.017-1.88-3.19-1.844-4.198a.4.4%200%200%200-.385-.414c-.242-.029-.406.164-.414.385-.046%201.249.367%203.686%202.202%204.896.708.467%201.547.7%202.51.7%201.248%200%202.706-.392%204.362-1.174l.185-.086a.4.4%200%200%200%20.205-.527c-.089-.204-.326-.291-.527-.206zM9.547%202.292c.093.077.205.114.317.114a.5.5%200%200%200%20.318-.886L8.817.397a.5.5%200%200%200-.703.068.5.5%200%200%200%20.069.703l1.364%201.124zm-7.661-.065c.086%200%20.173-.022.253-.068l1.523-.893a.5.5%200%200%200-.506-.863l-1.523.892a.5.5%200%200%200-.179.685c.094.158.261.247.432.247z%22%20transform%3D%22matrix%28-1%200%200%201%2058%200%29%22%20fill%3D%22%233bb300%22/%3E%3Cpath%20d%3D%22M.3%2021.86V10.18q0-.46.02-.68.04-.22.18-.5.28-.54%201.34-.54%201.06%200%201.42.28.38.26.44.78.76-1.04%202.38-1.04%201.64%200%203.1%201.54%201.46%201.54%201.46%203.58%200%202.04-1.46%203.58-1.44%201.54-3.08%201.54-1.64%200-2.38-.92v4.04q0%20.46-.04.68-.02.22-.18.5-.14.3-.5.42-.36.12-.98.12-.62%200-1-.12-.36-.12-.52-.4-.14-.28-.18-.5-.02-.22-.02-.68zm3.96-9.42q-.46.54-.46%201.18%200%20.64.46%201.18.48.52%201.2.52.74%200%201.24-.52.52-.52.52-1.18%200-.66-.48-1.18-.48-.54-1.26-.54-.76%200-1.22.54zm14.741-8.36q.16-.3.54-.42.38-.12%201-.12.64%200%201.02.12.38.12.52.42.16.3.18.54.04.22.04.68v11.94q0%20.46-.04.7-.02.22-.18.5-.3.54-1.7.54-1.38%200-1.54-.98-.84.96-2.34.96-1.8%200-3.28-1.56-1.48-1.58-1.48-3.66%200-2.1%201.48-3.68%201.5-1.58%203.28-1.58%201.48%200%202.3%201v-4.2q0-.46.02-.68.04-.24.18-.52zm-3.24%2010.86q.52.54%201.26.54.74%200%201.22-.54.5-.54.5-1.18%200-.66-.48-1.22-.46-.56-1.26-.56-.8%200-1.28.56-.48.54-.48%201.2%200%20.66.52%201.2zm7.833-1.2q0-2.4%201.68-3.96%201.68-1.56%203.84-1.56%202.16%200%203.82%201.56%201.66%201.54%201.66%203.94%200%201.66-.86%202.96-.86%201.28-2.1%201.9-1.22.6-2.54.6-1.32%200-2.56-.64-1.24-.66-2.1-1.92-.84-1.28-.84-2.88zm4.18%201.44q.64.48%201.3.48.66%200%201.32-.5.66-.5.66-1.48%200-.98-.62-1.46-.62-.48-1.34-.48-.72%200-1.34.5-.62.5-.62%201.48%200%20.96.64%201.46zm11.412-1.44q0%20.84.56%201.32.56.46%201.18.46.64%200%201.18-.36.56-.38.9-.38.6%200%201.46%201.06.46.58.46%201.04%200%20.76-1.1%201.42-1.14.8-2.8.8-1.86%200-3.58-1.34-.82-.64-1.34-1.7-.52-1.08-.52-2.36%200-1.3.52-2.34.52-1.06%201.34-1.7%201.66-1.32%203.54-1.32.76%200%201.48.22.72.2%201.06.4l.32.2q.36.24.56.38.52.4.52.92%200%20.5-.42%201.14-.72%201.1-1.38%201.1-.38%200-1.08-.44-.36-.34-1.04-.34-.66%200-1.24.48-.58.48-.58%201.34z%22%20fill%3D%22green%22/%3E%3C/svg%3E"/>
11
11
  <!-- build env - Package Name = "spotifywebapipython" -->
12
- <!-- build env - Package Version = "1.0.287" -->
12
+ <!-- build env - Package Version = "1.0.289" -->
13
13
  <!-- pdoc module.modulename = "spotifywebapipython.spotifywebapierror" -->
14
14
  <!-- pdoc module.is_package = "False" -->
15
15
  <!-- pdoc root_module_name = "None" -->
@@ -60,6 +60,9 @@
60
60
  <li>
61
61
  <a class="variable" href="#SpotifyWebApiError.Status">Status</a>
62
62
  </li>
63
+ <li>
64
+ <a class="variable" href="#SpotifyWebApiError.RetryAfter">RetryAfter</a>
65
+ </li>
63
66
  <li>
64
67
  <a class="function" href="#SpotifyWebApiError.ToString">ToString</a>
65
68
  </li>
@@ -71,7 +74,7 @@
71
74
 
72
75
  <footer class="footertext">
73
76
  spotifywebapipython</br>
74
- Version 1.0.287</br>
77
+ Version 1.0.289</br>
75
78
  <a href="https://developer.spotify.com/documentation/web-api" target="_blank">
76
79
  <img src="../spotifywebapipython.ico" alt="brand icon" style="width:32px; height:32px; padding:4px;"/>
77
80
  A Spotify Web Api Client
@@ -197,6 +200,25 @@ For further information, see Response Status Codes.</p>
197
200
  </div>
198
201
 
199
202
 
203
+ </div>
204
+ <div id="SpotifyWebApiError.RetryAfter" class="classattr">
205
+ <div class="attr variable">
206
+ <span class="name">RetryAfter</span><span class="annotation">: int</span>
207
+
208
+
209
+ </div>
210
+ <a class="headerlink" href="#SpotifyWebApiError.RetryAfter"></a>
211
+
212
+ <div class="docstring"><p>The number of seconds to wait before retrying a method call that resulted in
213
+ an HTTP status of 429 (rate-limit exceeded).</p>
214
+
215
+ <p>This value is only valid if the HTTP response headers contained a <code>retry-after</code> key.
216
+ This usually only happens when HTTP status code = 429.</p>
217
+
218
+ <p>Example: <code>21</code></p>
219
+ </div>
220
+
221
+
200
222
  </div>
201
223
  <div id="SpotifyWebApiError.ToString" class="classattr">
202
224
  <div class="attr function">
@@ -9,7 +9,7 @@
9
9
  </title>
10
10
  <link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20role%3D%22img%22%20aria-label%3D%22pdoc%20logo%22%20width%3D%22300%22%20height%3D%22150%22%20viewBox%3D%22-1%200%2060%2030%22%3E%3Ctitle%3Epdoc%3C/title%3E%3Cpath%20d%3D%22M29.621%2021.293c-.011-.273-.214-.475-.511-.481a.5.5%200%200%200-.489.503l-.044%201.393c-.097.551-.695%201.215-1.566%201.704-.577.428-1.306.486-2.193.182-1.426-.617-2.467-1.654-3.304-2.487l-.173-.172a3.43%203.43%200%200%200-.365-.306.49.49%200%200%200-.286-.196c-1.718-1.06-4.931-1.47-7.353.191l-.219.15c-1.707%201.187-3.413%202.131-4.328%201.03-.02-.027-.49-.685-.141-1.763.233-.721.546-2.408.772-4.076.042-.09.067-.187.046-.288.166-1.347.277-2.625.241-3.351%201.378-1.008%202.271-2.586%202.271-4.362%200-.976-.272-1.935-.788-2.774-.057-.094-.122-.18-.184-.268.033-.167.052-.339.052-.516%200-1.477-1.202-2.679-2.679-2.679-.791%200-1.496.352-1.987.9a6.3%206.3%200%200%200-1.001.029c-.492-.564-1.207-.929-2.012-.929-1.477%200-2.679%201.202-2.679%202.679A2.65%202.65%200%200%200%20.97%206.554c-.383.747-.595%201.572-.595%202.41%200%202.311%201.507%204.29%203.635%205.107-.037.699-.147%202.27-.423%203.294l-.137.461c-.622%202.042-2.515%208.257%201.727%2010.643%201.614.908%203.06%201.248%204.317%201.248%202.665%200%204.492-1.524%205.322-2.401%201.476-1.559%202.886-1.854%206.491.82%201.877%201.393%203.514%201.753%204.861%201.068%202.223-1.713%202.811-3.867%203.399-6.374.077-.846.056-1.469.054-1.537zm-4.835%204.313c-.054.305-.156.586-.242.629-.034-.007-.131-.022-.307-.157-.145-.111-.314-.478-.456-.908.221.121.432.25.675.355.115.039.219.051.33.081zm-2.251-1.238c-.05.33-.158.648-.252.694-.022.001-.125-.018-.307-.157-.217-.166-.488-.906-.639-1.573.358.344.754.693%201.198%201.036zm-3.887-2.337c-.006-.116-.018-.231-.041-.342.635.145%201.189.368%201.599.625.097.231.166.481.174.642-.03.049-.055.101-.067.158-.046.013-.128.026-.298.004-.278-.037-.901-.57-1.367-1.087zm-1.127-.497c.116.306.176.625.12.71-.019.014-.117.045-.345.016-.206-.027-.604-.332-.986-.695.41-.051.816-.056%201.211-.031zm-4.535%201.535c.209.22.379.47.358.598-.006.041-.088.138-.351.234-.144.055-.539-.063-.979-.259a11.66%2011.66%200%200%200%20.972-.573zm.983-.664c.359-.237.738-.418%201.126-.554.25.237.479.548.457.694-.006.042-.087.138-.351.235-.174.064-.694-.105-1.232-.375zm-3.381%201.794c-.022.145-.061.29-.149.401-.133.166-.358.248-.69.251h-.002c-.133%200-.306-.26-.45-.621.417.091.854.07%201.291-.031zm-2.066-8.077a4.78%204.78%200%200%201-.775-.584c.172-.115.505-.254.88-.378l-.105.962zm-.331%202.302a10.32%2010.32%200%200%201-.828-.502c.202-.143.576-.328.984-.49l-.156.992zm-.45%202.157l-.701-.403c.214-.115.536-.249.891-.376a11.57%2011.57%200%200%201-.19.779zm-.181%201.716c.064.398.194.702.298.893-.194-.051-.435-.162-.736-.398.061-.119.224-.3.438-.495zM8.87%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zm-.735-.389a1.15%201.15%200%200%200-.314.783%201.16%201.16%200%200%200%201.162%201.162c.457%200%20.842-.27%201.032-.653.026.117.042.238.042.362a1.68%201.68%200%200%201-1.679%201.679%201.68%201.68%200%200%201-1.679-1.679c0-.843.626-1.535%201.436-1.654zM5.059%205.406A1.68%201.68%200%200%201%203.38%207.085a1.68%201.68%200%200%201-1.679-1.679c0-.037.009-.072.011-.109.21.3.541.508.935.508a1.16%201.16%200%200%200%201.162-1.162%201.14%201.14%200%200%200-.474-.912c.015%200%20.03-.005.045-.005.926.001%201.679.754%201.679%201.68zM3.198%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zM1.375%208.964c0-.52.103-1.035.288-1.52.466.394%201.06.64%201.717.64%201.144%200%202.116-.725%202.499-1.738.383%201.012%201.355%201.738%202.499%201.738.867%200%201.631-.421%202.121-1.062.307.605.478%201.267.478%201.942%200%202.486-2.153%204.51-4.801%204.51s-4.801-2.023-4.801-4.51zm24.342%2019.349c-.985.498-2.267.168-3.813-.979-3.073-2.281-5.453-3.199-7.813-.705-1.315%201.391-4.163%203.365-8.423.97-3.174-1.786-2.239-6.266-1.261-9.479l.146-.492c.276-1.02.395-2.457.444-3.268a6.11%206.11%200%200%200%201.18.115%206.01%206.01%200%200%200%202.536-.562l-.006.175c-.802.215-1.848.612-2.021%201.25-.079.295.021.601.274.837.219.203.415.364.598.501-.667.304-1.243.698-1.311%201.179-.02.144-.022.507.393.787.213.144.395.26.564.365-1.285.521-1.361.96-1.381%201.126-.018.142-.011.496.427.746l.854.489c-.473.389-.971.914-.999%201.429-.018.278.095.532.316.713.675.556%201.231.721%201.653.721.059%200%20.104-.014.158-.02.207.707.641%201.64%201.513%201.64h.013c.8-.008%201.236-.345%201.462-.626.173-.216.268-.457.325-.692.424.195.93.374%201.372.374.151%200%20.294-.021.423-.068.732-.27.944-.704.993-1.021.009-.061.003-.119.002-.179.266.086.538.147.789.147.15%200%20.294-.021.423-.069.542-.2.797-.489.914-.754.237.147.478.258.704.288.106.014.205.021.296.021.356%200%20.595-.101.767-.229.438.435%201.094.992%201.656%201.067.106.014.205.021.296.021a1.56%201.56%200%200%200%20.323-.035c.17.575.453%201.289.866%201.605.358.273.665.362.914.362a.99.99%200%200%200%20.421-.093%201.03%201.03%200%200%200%20.245-.164c.168.428.39.846.68%201.068.358.273.665.362.913.362a.99.99%200%200%200%20.421-.093c.317-.148.512-.448.639-.762.251.157.495.257.726.257.127%200%20.25-.024.37-.071.427-.17.706-.617.841-1.314.022-.015.047-.022.068-.038.067-.051.133-.104.196-.159-.443%201.486-1.107%202.761-2.086%203.257zM8.66%209.925a.5.5%200%201%200-1%200c0%20.653-.818%201.205-1.787%201.205s-1.787-.552-1.787-1.205a.5.5%200%201%200-1%200c0%201.216%201.25%202.205%202.787%202.205s2.787-.989%202.787-2.205zm4.4%2015.965l-.208.097c-2.661%201.258-4.708%201.436-6.086.527-1.542-1.017-1.88-3.19-1.844-4.198a.4.4%200%200%200-.385-.414c-.242-.029-.406.164-.414.385-.046%201.249.367%203.686%202.202%204.896.708.467%201.547.7%202.51.7%201.248%200%202.706-.392%204.362-1.174l.185-.086a.4.4%200%200%200%20.205-.527c-.089-.204-.326-.291-.527-.206zM9.547%202.292c.093.077.205.114.317.114a.5.5%200%200%200%20.318-.886L8.817.397a.5.5%200%200%200-.703.068.5.5%200%200%200%20.069.703l1.364%201.124zm-7.661-.065c.086%200%20.173-.022.253-.068l1.523-.893a.5.5%200%200%200-.506-.863l-1.523.892a.5.5%200%200%200-.179.685c.094.158.261.247.432.247z%22%20transform%3D%22matrix%28-1%200%200%201%2058%200%29%22%20fill%3D%22%233bb300%22/%3E%3Cpath%20d%3D%22M.3%2021.86V10.18q0-.46.02-.68.04-.22.18-.5.28-.54%201.34-.54%201.06%200%201.42.28.38.26.44.78.76-1.04%202.38-1.04%201.64%200%203.1%201.54%201.46%201.54%201.46%203.58%200%202.04-1.46%203.58-1.44%201.54-3.08%201.54-1.64%200-2.38-.92v4.04q0%20.46-.04.68-.02.22-.18.5-.14.3-.5.42-.36.12-.98.12-.62%200-1-.12-.36-.12-.52-.4-.14-.28-.18-.5-.02-.22-.02-.68zm3.96-9.42q-.46.54-.46%201.18%200%20.64.46%201.18.48.52%201.2.52.74%200%201.24-.52.52-.52.52-1.18%200-.66-.48-1.18-.48-.54-1.26-.54-.76%200-1.22.54zm14.741-8.36q.16-.3.54-.42.38-.12%201-.12.64%200%201.02.12.38.12.52.42.16.3.18.54.04.22.04.68v11.94q0%20.46-.04.7-.02.22-.18.5-.3.54-1.7.54-1.38%200-1.54-.98-.84.96-2.34.96-1.8%200-3.28-1.56-1.48-1.58-1.48-3.66%200-2.1%201.48-3.68%201.5-1.58%203.28-1.58%201.48%200%202.3%201v-4.2q0-.46.02-.68.04-.24.18-.52zm-3.24%2010.86q.52.54%201.26.54.74%200%201.22-.54.5-.54.5-1.18%200-.66-.48-1.22-.46-.56-1.26-.56-.8%200-1.28.56-.48.54-.48%201.2%200%20.66.52%201.2zm7.833-1.2q0-2.4%201.68-3.96%201.68-1.56%203.84-1.56%202.16%200%203.82%201.56%201.66%201.54%201.66%203.94%200%201.66-.86%202.96-.86%201.28-2.1%201.9-1.22.6-2.54.6-1.32%200-2.56-.64-1.24-.66-2.1-1.92-.84-1.28-.84-2.88zm4.18%201.44q.64.48%201.3.48.66%200%201.32-.5.66-.5.66-1.48%200-.98-.62-1.46-.62-.48-1.34-.48-.72%200-1.34.5-.62.5-.62%201.48%200%20.96.64%201.46zm11.412-1.44q0%20.84.56%201.32.56.46%201.18.46.64%200%201.18-.36.56-.38.9-.38.6%200%201.46%201.06.46.58.46%201.04%200%20.76-1.1%201.42-1.14.8-2.8.8-1.86%200-3.58-1.34-.82-.64-1.34-1.7-.52-1.08-.52-2.36%200-1.3.52-2.34.52-1.06%201.34-1.7%201.66-1.32%203.54-1.32.76%200%201.48.22.72.2%201.06.4l.32.2q.36.24.56.38.52.4.52.92%200%20.5-.42%201.14-.72%201.1-1.38%201.1-.38%200-1.08-.44-.36-.34-1.04-.34-.66%200-1.24.48-.58.48-.58%201.34z%22%20fill%3D%22green%22/%3E%3C/svg%3E"/>
11
11
  <!-- build env - Package Name = "spotifywebapipython" -->
12
- <!-- build env - Package Version = "1.0.287" -->
12
+ <!-- build env - Package Version = "1.0.289" -->
13
13
  <!-- pdoc module.modulename = "spotifywebapipython.spotifywebplayertoken" -->
14
14
  <!-- pdoc module.is_package = "False" -->
15
15
  <!-- pdoc root_module_name = "None" -->
@@ -101,7 +101,7 @@
101
101
 
102
102
  <footer class="footertext">
103
103
  spotifywebapipython</br>
104
- Version 1.0.287</br>
104
+ Version 1.0.289</br>
105
105
  <a href="https://developer.spotify.com/documentation/web-api" target="_blank">
106
106
  <img src="../spotifywebapipython.ico" alt="brand icon" style="width:32px; height:32px; padding:4px;"/>
107
107
  A Spotify Web Api Client
@@ -15,7 +15,7 @@ from soco.plugins.sharelink import ShareLinkPlugin
15
15
  import time
16
16
  import threading
17
17
  from typing import Tuple, Callable, Union
18
- from urllib3 import PoolManager, Timeout, HTTPResponse
18
+ from urllib3 import PoolManager, Timeout, HTTPResponse, Retry
19
19
  from urllib.parse import urlencode
20
20
  import urllib.parse
21
21
  from lxml.etree import fromstring, Element
@@ -252,16 +252,29 @@ class SpotifyClient:
252
252
  # "WARNING:urllib3.connectionpool:Connection pool is full, discarding connection: x.x.x.x. Connection pool size: 1"
253
253
  if (manager is None) or (not isinstance(manager,PoolManager)):
254
254
 
255
+ # setup retry details for each request made to the Spotify Web API.
256
+ # this allows the urllib3 PoolManager to automatically retry requests that fail due to
257
+ # connection and read related scenarios (e.g. temporary connection issues, redirects, etc);
258
+ # it allows our library to manually handle other types of retry scenarios (e.g. temporary
259
+ # Spotify Web API backend server, unauthorized / forbidden requests, etc).
260
+ retry = Retry(
261
+ total=3, # total number of retries to allow (takes precedence over other counts)
262
+ connect=2, # number of times to retry on connection-related errors (errors raised before request is sent to server)
263
+ read=2, # number of times to retry on read errors (errors raised after request was sent to server)
264
+ status=0, # number of times to retry on bad status codes (0=never retry; let us handle them manually and ignore `status_forcelist`)
265
+ respect_retry_after_header=False, # whether to respect Retry-After header on status codes
266
+ )
267
+
255
268
  # create new pool manager with specified timeouts and limits.
256
269
  timeout = Timeout(connect=float(30), read=None)
257
- self._Manager = PoolManager(headers={'User-Agent': 'SpotifyApiPython/1.0.0'},
270
+ self._Manager = PoolManager(headers={'User-Agent': 'SpotifyWebApiPython/1.0.0'},
258
271
  timeout=timeout,
259
272
  num_pools=10, # number of connection pools to allocate.
260
273
  maxsize=30, # maximum number of connections to keep in the pool.
261
- block=True # limit number of connections to the device.
274
+ block=True, # limit number of connections to the device.
275
+ retries=retry, # specific way to handle retry on errors.
262
276
  )
263
277
 
264
-
265
278
  # verify token storage directory exists.
266
279
  if tokenStorageDir is None:
267
280
  tokenStorageDir = platformdirs.site_config_dir('SpotifyWebApiPython', ensure_exists=True, appauthor=False)
@@ -706,6 +719,7 @@ class SpotifyClient:
706
719
  responseData:dict = None
707
720
  responseUTF8:str = None
708
721
  contentType:str = None
722
+ retryAfterSeconds:int|None = None
709
723
 
710
724
  try:
711
725
 
@@ -740,9 +754,17 @@ class SpotifyClient:
740
754
  # do response headers contain a content-type value?
741
755
  # if so, we will use it to determine how to convert the response data.
742
756
  if response.headers:
757
+
743
758
  if 'content-type' in response.headers:
744
759
  contentType = response.headers['content-type']
745
760
 
761
+ # Spotify normally returns a seconds value for `retry-after`, but it could change to a date.
762
+ if 'retry-after' in response.headers:
763
+ try:
764
+ retryAfterSeconds = int(response.headers.get('retry-after', 0))
765
+ except Exception as ex:
766
+ retryAfterSeconds = None
767
+
746
768
  # do we have response data?
747
769
  if len(response.data) == 0:
748
770
 
@@ -839,9 +861,16 @@ class SpotifyClient:
839
861
 
840
862
  if errCode is None:
841
863
  errCode = response.status
864
+
865
+ # if "retry-after" response header, then append the amount to the message.
866
+ if (retryAfterSeconds is not None):
867
+ errMessage += " (retry-after: %s seconds)" % retryAfterSeconds
842
868
 
843
869
  if (not msg.IgnoreResponseErrors):
844
- raise SpotifyWebApiError(errCode, errMessage, msg.MethodName, response.reason, _logsi)
870
+ exObj = SpotifyWebApiError(errCode, errMessage, msg.MethodName, response.reason, _logsi)
871
+ if (retryAfterSeconds is not None):
872
+ exObj.RetryAfter = retryAfterSeconds
873
+ raise exObj
845
874
 
846
875
  elif isinstance(errObj, str):
847
876
 
@@ -1565,6 +1594,18 @@ class SpotifyClient:
1565
1594
  _logsi.LogDictionary(SILevel.Verbose, "SpotifyClient http request: '%s' (no body)" % (url), msg.RequestData, prettyPrint=True)
1566
1595
  response = self._Manager.request(method, url, headers=msg.RequestHeaders)
1567
1596
 
1597
+ # TEST TODO - simulate http response for testing purposes.
1598
+ # _logsi.LogWarning("SpotifyClient MakeRequest forced HTTPResponse for testing!", colorValue=SIColors.Red)
1599
+ # response = HTTPResponse(
1600
+ # status=429,
1601
+ # reason="Too Many Requests (TEST)",
1602
+ # body=b'{"error":{"status":429,"message":"API rate limit exceeded"}}',
1603
+ # headers={
1604
+ # "Content-Type": "application/json",
1605
+ # "Retry-After": "41",
1606
+ # },
1607
+ # )
1608
+
1568
1609
  # TEST TODO - for testing retry logic.
1569
1610
  # if (response.status_code == 200) and (loopTotalDelay <= 0.200):
1570
1611
  # _logsi.LogWarning("TEST TODO - Testing Spotify Web API 504 status (Gateway timeout) condition ...", colorValue=SIColors.Red)
@@ -1577,7 +1618,7 @@ class SpotifyClient:
1577
1618
 
1578
1619
  # check for errors that are temporary in nature; for these errors, we will retry the
1579
1620
  # request for a specified number of tries with a small wait period in between.
1580
- if (response.status == 504):
1621
+ if (response.status in [503,504]):
1581
1622
 
1582
1623
  # only retry so many times before we give up;
1583
1624
  if (loopTotalDelay >= LOOP_TIMEOUT):
@@ -3722,6 +3763,11 @@ class SpotifyClient:
3722
3763
  SpotifyApiError:
3723
3764
  If the method fails for any other reason.
3724
3765
 
3766
+ Filter criteria is applied after data (up to the limit) has been retrieved.
3767
+ This is important, in that if you set the limit too low it will not find any matching entries because
3768
+ it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
3769
+ is considered by the filter.
3770
+
3725
3771
  <details>
3726
3772
  <summary>Sample Code - Manual Paging</summary>
3727
3773
  ```python
@@ -3925,6 +3971,11 @@ class SpotifyClient:
3925
3971
  SpotifyApiError:
3926
3972
  If the method fails for any other reason.
3927
3973
 
3974
+ Filter criteria is applied after data (up to the limit) has been retrieved.
3975
+ This is important, in that if you set the limit too low it will not find any matching entries because
3976
+ it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
3977
+ is considered by the filter.
3978
+
3928
3979
  <details>
3929
3980
  <summary>Sample Code - Manual Paging</summary>
3930
3981
  ```python
@@ -4435,7 +4486,7 @@ class SpotifyClient:
4435
4486
  self,
4436
4487
  artistId:str=None,
4437
4488
  include_groups:str='album',
4438
- limit:int=20,
4489
+ limit:int=10,
4439
4490
  offset:int=0,
4440
4491
  market:str=None,
4441
4492
  limitTotal:int=None,
@@ -4457,7 +4508,7 @@ class SpotifyClient:
4457
4508
  Example: `single,appears_on`
4458
4509
  limit (int):
4459
4510
  The maximum number of items to return in a page of items when manual paging is used.
4460
- Default: 20, Range: 1 to 50.
4511
+ Default: 10, Range: 1 to 10.
4461
4512
  See the `limitTotal` argument for automatic paging option.
4462
4513
  offset (int):
4463
4514
  The index of the first item to return; use with limit to get the next set of items.
@@ -4523,7 +4574,7 @@ class SpotifyClient:
4523
4574
 
4524
4575
  # validations.
4525
4576
  if limit is None:
4526
- limit = 20
4577
+ limit = 10
4527
4578
  if offset is None:
4528
4579
  offset = 0
4529
4580
  if not isinstance(limitTotal, int):
@@ -4533,7 +4584,7 @@ class SpotifyClient:
4533
4584
 
4534
4585
  # are we auto-paging? if so, then use max limit.
4535
4586
  if limitTotal > 0:
4536
- limit = 50
4587
+ limit = 10
4537
4588
  if limit > limitTotal:
4538
4589
  limit = limitTotal
4539
4590
  result = AlbumPageSimplified()
@@ -5191,8 +5242,8 @@ class SpotifyClient:
5191
5242
  were returned in by the Spotify Web API.
5192
5243
  Default: True
5193
5244
  filterCriteria (str):
5194
- Filter returned entries by a audiobook name or uri value.
5195
- Value can be a full name (e.g. "My AudioBook Name"), or a partial name (e.g. "My").
5245
+ Filter returned entries by an artist name or uri value.
5246
+ Value can be a full name (e.g. "My Artist Name"), or a partial name (e.g. "My").
5196
5247
 
5197
5248
  Returns:
5198
5249
  An `ArtistPage` object of matching results.
@@ -5204,6 +5255,11 @@ class SpotifyClient:
5204
5255
  SpotifyApiError:
5205
5256
  If the method fails for any other reason.
5206
5257
 
5258
+ Filter criteria is applied after data (up to the limit) has been retrieved.
5259
+ This is important, in that if you set the limit too low it will not find any matching entries because
5260
+ it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
5261
+ is considered by the filter.
5262
+
5207
5263
  <details>
5208
5264
  <summary>Sample Code - Manual Paging</summary>
5209
5265
  ```python
@@ -5802,6 +5858,11 @@ class SpotifyClient:
5802
5858
  SpotifyApiError:
5803
5859
  If the method fails for any other reason.
5804
5860
 
5861
+ Filter criteria is applied after data (up to the limit) has been retrieved.
5862
+ This is important, in that if you set the limit too low it will not find any matching entries because
5863
+ it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
5864
+ is considered by the filter.
5865
+
5805
5866
  <details>
5806
5867
  <summary>Sample Code - Manual Paging</summary>
5807
5868
  ```python
@@ -7312,6 +7373,11 @@ class SpotifyClient:
7312
7373
  SpotifyApiError:
7313
7374
  If the method fails for any other reason.
7314
7375
 
7376
+ Filter criteria is applied after data (up to the limit) has been retrieved.
7377
+ This is important, in that if you set the limit too low it will not find any matching entries because
7378
+ it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
7379
+ is considered by the filter.
7380
+
7315
7381
  <details>
7316
7382
  <summary>Sample Code - Manual Paging</summary>
7317
7383
  ```python
@@ -9397,6 +9463,11 @@ class SpotifyClient:
9397
9463
  If both `after` and `before` arguments are null (or zero), then a `before` value
9398
9464
  is generated that will retrieve the last 50 recently played tracks.
9399
9465
 
9466
+ Filter criteria is applied after data (up to the limit) has been retrieved.
9467
+ This is important, in that if you set the limit too low it will not find any matching entries because
9468
+ it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
9469
+ is considered by the filter.
9470
+
9400
9471
  Returns:
9401
9472
  A `PlayHistoryPage` object that contains the recently played items.
9402
9473
 
@@ -10091,6 +10162,11 @@ class SpotifyClient:
10091
10162
  target="_blank">Spotify Developer Forum Blog</a> page.
10092
10163
  <span>
10093
10164
 
10165
+ Filter criteria is applied after data (up to the limit) has been retrieved.
10166
+ This is important, in that if you set the limit too low it will not find any matching entries because
10167
+ it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
10168
+ is considered by the filter.
10169
+
10094
10170
  <details>
10095
10171
  <summary>Sample Code - Manual Paging</summary>
10096
10172
  ```python
@@ -10742,6 +10818,11 @@ class SpotifyClient:
10742
10818
  The reasoning for that is unclear, but the `excludeAudiobooks` argument allows you to
10743
10819
  only return podcast shows in the results if desired.
10744
10820
 
10821
+ Filter criteria is applied after data (up to the limit) has been retrieved.
10822
+ This is important, in that if you set the limit too low it will not find any matching entries because
10823
+ it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
10824
+ is considered by the filter.
10825
+
10745
10826
  <details>
10746
10827
  <summary>Sample Code - Manual Paging</summary>
10747
10828
  ```python
@@ -11732,6 +11813,11 @@ class SpotifyClient:
11732
11813
  SpotifyApiError:
11733
11814
  If the method fails for any other reason.
11734
11815
 
11816
+ Filter criteria is applied after data (up to the limit) has been retrieved.
11817
+ This is important, in that if you set the limit too low it will not find any matching entries because
11818
+ it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
11819
+ is considered by the filter.
11820
+
11735
11821
  <details>
11736
11822
  <summary>Sample Code - Manual Paging</summary>
11737
11823
  ```python
@@ -12809,6 +12895,11 @@ class SpotifyClient:
12809
12895
  SpotifyApiError:
12810
12896
  If the method fails for any other reason.
12811
12897
 
12898
+ Filter criteria is applied after data (up to the limit) has been retrieved.
12899
+ This is important, in that if you set the limit too low it will not find any matching entries because
12900
+ it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
12901
+ is considered by the filter.
12902
+
12812
12903
  <details>
12813
12904
  <summary>Sample Code - Manual Paging</summary>
12814
12905
  ```python
@@ -13008,6 +13099,11 @@ class SpotifyClient:
13008
13099
  SpotifyApiError:
13009
13100
  If the method fails for any other reason.
13010
13101
 
13102
+ Filter criteria is applied after data (up to the limit) has been retrieved.
13103
+ This is important, in that if you set the limit too low it will not find any matching entries because
13104
+ it could not retrieve them all. If filtering, ensure that you set higher a limit value to that ALL data
13105
+ is considered by the filter.
13106
+
13011
13107
  <details>
13012
13108
  <summary>Sample Code - Manual Paging</summary>
13013
13109
  ```python
@@ -39,6 +39,7 @@ class SpotifyWebApiError(Exception):
39
39
  self._Message:str = message
40
40
  self._MethodName:str = methodName
41
41
  self._Status:int = status
42
+ self._RetryAfter:int = 0
42
43
 
43
44
  # trace.
44
45
  if logsi is not None:
@@ -95,6 +96,29 @@ class SpotifyWebApiError(Exception):
95
96
  return self._Status
96
97
 
97
98
 
99
+ @property
100
+ def RetryAfter(self) -> int:
101
+ """
102
+ The number of seconds to wait before retrying a method call that resulted in
103
+ an HTTP status of 429 (rate-limit exceeded).
104
+
105
+ This value is only valid if the HTTP response headers contained a `retry-after` key.
106
+ This usually only happens when HTTP status code = 429.
107
+
108
+ Example: `21`
109
+ """
110
+ return self._RetryAfter
111
+
112
+ @RetryAfter.setter
113
+ def RetryAfter(self, value:int):
114
+ """
115
+ Sets the RetryAfter property value.
116
+ """
117
+ if isinstance(value, int):
118
+ if (value > 0):
119
+ self._RetryAfter = value
120
+
121
+
98
122
  def ToString(self) -> str:
99
123
  """
100
124
  Returns a UI-friendly string representation of the class.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: spotifywebapipython
3
- Version: 1.0.287
3
+ Version: 1.0.289
4
4
  Summary: Spotify Web API Python3 Library
5
5
  Author: Todd Lucas
6
6
  Author-email: <thlucas@yahoo.com>
@@ -1,36 +1,36 @@
1
1
  spotifywebapipython/__init__.py,sha256=ka7F2AsT-UU7KSYKBnfgl5Trojcep5aQspLutg8D-2k,1306
2
- spotifywebapipython/const.py,sha256=CdZ1K_vhJQO7hcHbV3qD65_B1rHl2u0e4LexmRTqS8g,4100
2
+ spotifywebapipython/const.py,sha256=6q8hXDRbRsFImRQZOMxSxpWHJ3qBzaO75oGsnIBnyvM,4100
3
3
  spotifywebapipython/saappmessages.py,sha256=mVprjpd5CdD8kYeAkLzRvMvIQPmaYtH4UCP5my3QhSk,5065
4
4
  spotifywebapipython/sautils.py,sha256=LZF3UvxaBK35WIg1hO37nbW8j1y-M-oOxRbi1dPR39w,8746
5
5
  spotifywebapipython/spotifyapierror.py,sha256=23_CYlxWN0BceYYCLpBpunl55vEwPr_wFf34l74xzeA,1855
6
6
  spotifywebapipython/spotifyapimessage.py,sha256=wCnW8jYMLS3x9kjyXPgXXZqaf1HeMTTXzU8u_Dm5pfA,8447
7
7
  spotifywebapipython/spotifyauthtoken.py,sha256=iVg2Pa5mfMqYe4qgc5H8td6JzJlaDqk4vMEhH5LmtfI,9289
8
- spotifywebapipython/spotifyclient.py,sha256=PN115xXN6Vrhhp0z6Js9XaSR77GhF1rYFFc_6OqSpfc,921897
8
+ spotifywebapipython/spotifyclient.py,sha256=2ZNeq8Ts2BvBBCB1Ktnq74dMa_KUbMqSPUNrRHKJ5cQ,928610
9
9
  spotifywebapipython/spotifydiscovery.py,sha256=cyysxl8PQj9yGHVbaqhSF3SStlrp-NvfGAudM-dDmg0,20290
10
10
  spotifywebapipython/spotifymediatypes.py,sha256=hMjkxhbfTtks0_P8BKmY7qg3EmB2zhH3RT0DbEpb_2s,1628
11
11
  spotifywebapipython/spotifytypeprefixes.py,sha256=3yfpxKF7jF694qBuo-PbKYvm70YwwdBoGj9enOpWsAg,1375
12
12
  spotifywebapipython/spotifywebapiauthenticationerror.py,sha256=5A0MKvYo3Ypv0ZeSSfLHuFLwzoUUu044bBoUgMfNXNw,3940
13
- spotifywebapipython/spotifywebapierror.py,sha256=5cga9213J_nFQ0UX4vSn3dpyinASKTRiH0wAR4nLjvs,3147
13
+ spotifywebapipython/spotifywebapierror.py,sha256=ctYFvkBPlFFEoM_geP6hzwTyC2mPcrYR_zCCNvsmpwc,3870
14
14
  spotifywebapipython/spotifywebplayertoken.py,sha256=axj1j1lM7COiiZfpElkJRdnk4AmE6bAQcjKshUIz1Nk,35813
15
- spotifywebapipython/docs/__init__.html,sha256=hygCBJ02lgn1fZup0_0Fppz0oyThPj5ekEFxPzA8oCw,196692
15
+ spotifywebapipython/docs/__init__.html,sha256=OCHcyOCJnVMenwqoVwEOc6bTRipOvxXoeQbOgmcCO5w,198047
16
16
  spotifywebapipython/docs/codecopy.js,sha256=ryuoZwLIL03YitjjFzn49UO5ta7-OBos6LNA3qHhFzs,3120
17
- spotifywebapipython/docs/index.html,sha256=IczeGP9BMSpR7toRwEqPcHrfFEFhAcKidEgOs-21KS0,48779
18
- spotifywebapipython/docs/search.js,sha256=Ia1weVz8Ea-4hGloxovMuoaY5cHQaWMciP0Z5KwSnLI,9238084
17
+ spotifywebapipython/docs/index.html,sha256=zLysGOx8QSypT1OVFGBPfVrRQmjZRV-a_sqhZQODmF4,48779
18
+ spotifywebapipython/docs/search.js,sha256=St8jC3-blXEixZW1UGzamEP8KYD-IHTi1Cwsl-ufWYQ,9266834
19
19
  spotifywebapipython/docs/spotifywebapipython.ico,sha256=YImj39fqqSPSuB2-sMDlUYDd6YwRfQeJRtq4FjwWglg,16410
20
20
  spotifywebapipython/docs/spotifywebapipython_OLD.ico,sha256=YIv5LjcD4bTIJQSOr8jjwbWaeB3QkElRwkTOePiGbZo,14904
21
- spotifywebapipython/docs/spotifywebapipython/const.html,sha256=AuvnxmWC9FxZcLwcC61Xcl8U0asOoynsLJFkBzBF0wM,60537
22
- spotifywebapipython/docs/spotifywebapipython/saappmessages.html,sha256=197Q-wMaWx4BNabmQmEn6XFvTKVKRU_FEtb5nO60oqw,62358
23
- spotifywebapipython/docs/spotifywebapipython/sautils.html,sha256=opJnQ9DDuDTUv5FRitsSbIs8Egnm3u_j7lm13sVOoWI,62031
24
- spotifywebapipython/docs/spotifywebapipython/spotifyapierror.html,sha256=bIK6re_mHtJRPWBqvhL0pSpDwFMqejlGVDk0gF5M4B0,48054
25
- spotifywebapipython/docs/spotifywebapipython/spotifyapimessage.html,sha256=CniLDlRMCXbC6jgynuT2crWNIWEwjoe5_onQlq7LB2c,59210
26
- spotifywebapipython/docs/spotifywebapipython/spotifyauthtoken.html,sha256=uOhaWwxFuCQbUDKd1LdD3197uL9dHy-ZgHi0gLmMCE4,59256
27
- spotifywebapipython/docs/spotifywebapipython/spotifyclient.html,sha256=gWzOoHXXkhr6a_ig_qoyyKHjS_ZBC5KPqk7nKHLIJUM,1673993
28
- spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html,sha256=sBx3BHDhD18Gsn7bVRR5GMmK2SncD-LFSKJItmv6DTI,57662
29
- spotifywebapipython/docs/spotifywebapipython/spotifymediatypes.html,sha256=YJXH-gMS2wUxP6w7lmUObRESA4LKBz0vBiVdZ8J6BCQ,51532
30
- spotifywebapipython/docs/spotifywebapipython/spotifytypeprefixes.html,sha256=ugqRX9bS-6l45t_SJOgK-E4U3Er_deaeSbfzKgcyiPo,52401
31
- spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html,sha256=RQm3-Jzh2L1EnFHt64w0-ksDJDksWanRV044ZZoOdwY,52174
32
- spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html,sha256=B2b2Wxrmip9GBdMm9rXjgCq0ECtikZOcJzL_0G0_n6g,50592
33
- spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html,sha256=R97l8hgCvOGHoZT8hpu3Ug8bdM_ZfM0QCd4pgrGGzxI,62204
21
+ spotifywebapipython/docs/spotifywebapipython/const.html,sha256=z8Pwbp4KAgRrczw7NiHvOgIuwOf6hQri-AjPRMwBW2E,60537
22
+ spotifywebapipython/docs/spotifywebapipython/saappmessages.html,sha256=apkwmkh_GX0hed8VZ6YDhpbanxBTxQbQSgDa7yEUUhU,62358
23
+ spotifywebapipython/docs/spotifywebapipython/sautils.html,sha256=PgwlvUCrO_170gLabuqhXYjBZB5g-cLd0FPyfLJOd_o,62031
24
+ spotifywebapipython/docs/spotifywebapipython/spotifyapierror.html,sha256=bS1FNnjlkpnqwY-p_NeayY0JEncb248wiU1e9Hk37fg,48054
25
+ spotifywebapipython/docs/spotifywebapipython/spotifyapimessage.html,sha256=JtSoDUt0UUs-Gkg7v_dmg1_rXhb1U-o44rTq_sh42x0,59210
26
+ spotifywebapipython/docs/spotifywebapipython/spotifyauthtoken.html,sha256=hnQrfu_NqBqIb4giFxzBwPCxyg8LU_uX7w4_M-9z_go,59256
27
+ spotifywebapipython/docs/spotifywebapipython/spotifyclient.html,sha256=66poT0FvYL_k2LESBFB1XQAcIpwnCFVh33lFdE4BkKQ,1677607
28
+ spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html,sha256=YqRH3_f4lqUxf6hCyu8d8KJ5dKS6F-Jj-CVlz86X5gg,57662
29
+ spotifywebapipython/docs/spotifywebapipython/spotifymediatypes.html,sha256=64rEBnefUE5ONGlm2Vv7nF_6GkYFauKOzWw9BXPamaI,51532
30
+ spotifywebapipython/docs/spotifywebapipython/spotifytypeprefixes.html,sha256=MrX-XTuvo1McnRnLEFvhiFLSa6m1UkFW2I8n34eBgG0,52401
31
+ spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html,sha256=J4KZZKdfs7XOKab4iPwwaz8YP2zKpX65ZCYWzYo-yUw,52174
32
+ spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html,sha256=1MBsgUeuV6lq1DWketWRF4LOD9Fj-eLYVpk3qCr7ajw,51484
33
+ spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html,sha256=ROdAbP5gfsKgsSmHSgT7o5Vw0phaagS3WowMAZoHlfg,62204
34
34
  spotifywebapipython/models/__init__.py,sha256=RwRQhUX-6EUs8XvStVFpR8EPwoqIAz9K6ref-28qHKI,4423
35
35
  spotifywebapipython/models/album.py,sha256=U3Pdw0-EL33LdkeiN31fjZ23rlLk6DNGV8jRmZU7EyQ,5170
36
36
  spotifywebapipython/models/albumpagesaved.py,sha256=SBYMhkh5ZsMrRAXl-cm9zsxMDh8gO190ENq6Py2TyGY,2417
@@ -137,8 +137,8 @@ spotifywebapipython/zeroconfapi/zeroconfgetinfo.py,sha256=APayso_F7lCsdzzrkescgd
137
137
  spotifywebapipython/zeroconfapi/zeroconfgetinfoalias.py,sha256=FZJM23HIPJSfhXIC3-EuS1XhawheoG5maSp7__k4yBo,2932
138
138
  spotifywebapipython/zeroconfapi/zeroconfgetinfodrmmediaformat.py,sha256=c5uk8ljsIuBK3w2jahHKQuoWvm245LOjUBitetXx5Mo,2347
139
139
  spotifywebapipython/zeroconfapi/zeroconfresponse.py,sha256=mAPIDj5MG53x8peiScrp7OJblwy_o_Sto4wqE0rGujU,6445
140
- spotifywebapipython-1.0.287.dist-info/LICENSE,sha256=KGcc9g0zwqNLcWnSn_ezv1UtKyhMENFhvtixpxUPNsE,1177
141
- spotifywebapipython-1.0.287.dist-info/METADATA,sha256=REYw9OelXmSwcVqOURpfVis8DtFmuIWh2ubVM5YhGx8,11644
142
- spotifywebapipython-1.0.287.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
143
- spotifywebapipython-1.0.287.dist-info/top_level.txt,sha256=jTBLFlijKTesYh2dteAz4vb17qjaqWKeDjpnnwTcrjs,20
144
- spotifywebapipython-1.0.287.dist-info/RECORD,,
140
+ spotifywebapipython-1.0.289.dist-info/LICENSE,sha256=KGcc9g0zwqNLcWnSn_ezv1UtKyhMENFhvtixpxUPNsE,1177
141
+ spotifywebapipython-1.0.289.dist-info/METADATA,sha256=rZ0Y-1PyNMsKsvXKjppoFUAnM8i58jBcBgnc5bxsOGA,11644
142
+ spotifywebapipython-1.0.289.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
143
+ spotifywebapipython-1.0.289.dist-info/top_level.txt,sha256=jTBLFlijKTesYh2dteAz4vb17qjaqWKeDjpnnwTcrjs,20
144
+ spotifywebapipython-1.0.289.dist-info/RECORD,,