spotifywebapiPython 1.0.242__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.
- spotifywebapipython/__init__.py +35 -0
- spotifywebapipython/const.py +114 -0
- spotifywebapipython/docs/__init__.html +2156 -0
- spotifywebapipython/docs/codecopy.js +70 -0
- spotifywebapipython/docs/index.html +514 -0
- spotifywebapipython/docs/search.js +46 -0
- spotifywebapipython/docs/spotifywebapipython/const.html +636 -0
- spotifywebapipython/docs/spotifywebapipython/saappmessages.html +540 -0
- spotifywebapipython/docs/spotifywebapipython/sautils.html +620 -0
- spotifywebapipython/docs/spotifywebapipython/spotifyapierror.html +341 -0
- spotifywebapipython/docs/spotifywebapipython/spotifyapimessage.html +598 -0
- spotifywebapipython/docs/spotifywebapipython/spotifyauthtoken.html +612 -0
- spotifywebapipython/docs/spotifywebapipython/spotifyclient.html +16557 -0
- spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html +518 -0
- spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html +421 -0
- spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html +400 -0
- spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html +635 -0
- spotifywebapipython/docs/spotifywebapipython.ico +0 -0
- spotifywebapipython/docs/spotifywebapipython_OLD.ico +0 -0
- spotifywebapipython/models/__init__.py +121 -0
- spotifywebapipython/models/album.py +170 -0
- spotifywebapipython/models/albumpagesaved.py +85 -0
- spotifywebapipython/models/albumpagesimplified.py +88 -0
- spotifywebapipython/models/albumsaved.py +102 -0
- spotifywebapipython/models/albumsimplified.py +308 -0
- spotifywebapipython/models/artist.py +146 -0
- spotifywebapipython/models/artistinfo.py +282 -0
- spotifywebapipython/models/artistinfotourevent.py +127 -0
- spotifywebapipython/models/artistpage.py +70 -0
- spotifywebapipython/models/artistsimplified.py +163 -0
- spotifywebapipython/models/audiobook.py +87 -0
- spotifywebapipython/models/audiobookpagesimplified.py +88 -0
- spotifywebapipython/models/audiobooksimplified.py +362 -0
- spotifywebapipython/models/audiofeatures.py +333 -0
- spotifywebapipython/models/author.py +67 -0
- spotifywebapipython/models/category.py +168 -0
- spotifywebapipython/models/categorypage.py +70 -0
- spotifywebapipython/models/chapter.py +84 -0
- spotifywebapipython/models/chapterpagesimplified.py +88 -0
- spotifywebapipython/models/chaptersimplified.py +387 -0
- spotifywebapipython/models/context.py +113 -0
- spotifywebapipython/models/copyright.py +79 -0
- spotifywebapipython/models/device.py +301 -0
- spotifywebapipython/models/episode.py +84 -0
- spotifywebapipython/models/episodepagesaved.py +85 -0
- spotifywebapipython/models/episodepagesimplified.py +88 -0
- spotifywebapipython/models/episodesaved.py +99 -0
- spotifywebapipython/models/episodesimplified.py +370 -0
- spotifywebapipython/models/explicitcontent.py +80 -0
- spotifywebapipython/models/externalids.py +91 -0
- spotifywebapipython/models/externalurls.py +104 -0
- spotifywebapipython/models/followers.py +81 -0
- spotifywebapipython/models/imageobject.py +193 -0
- spotifywebapipython/models/imagevibrantcolors.py +182 -0
- spotifywebapipython/models/linkedfrom.py +165 -0
- spotifywebapipython/models/narrator.py +67 -0
- spotifywebapipython/models/owner.py +162 -0
- spotifywebapipython/models/pageobject.py +343 -0
- spotifywebapipython/models/playeractions.py +196 -0
- spotifywebapipython/models/playerlastplayedinfo.py +334 -0
- spotifywebapipython/models/playerplaystate.py +467 -0
- spotifywebapipython/models/playerqueueinfo.py +207 -0
- spotifywebapipython/models/playhistory.py +136 -0
- spotifywebapipython/models/playhistorypage.py +85 -0
- spotifywebapipython/models/playlist.py +125 -0
- spotifywebapipython/models/playlistpage.py +85 -0
- spotifywebapipython/models/playlistpagesimplified.py +107 -0
- spotifywebapipython/models/playlistsimplified.py +334 -0
- spotifywebapipython/models/playlisttrack.py +143 -0
- spotifywebapipython/models/playlisttracksummary.py +80 -0
- spotifywebapipython/models/recommendationseed.py +135 -0
- spotifywebapipython/models/restrictions.py +86 -0
- spotifywebapipython/models/resumepoint.py +79 -0
- spotifywebapipython/models/searchresponse.py +391 -0
- spotifywebapipython/models/searchresultbase.py +299 -0
- spotifywebapipython/models/show.py +87 -0
- spotifywebapipython/models/showpagesaved.py +85 -0
- spotifywebapipython/models/showpagesimplified.py +88 -0
- spotifywebapipython/models/showsaved.py +99 -0
- spotifywebapipython/models/showsimplified.py +320 -0
- spotifywebapipython/models/spotifyconnectdevice.py +321 -0
- spotifywebapipython/models/spotifyconnectdevices.py +441 -0
- spotifywebapipython/models/track.py +142 -0
- spotifywebapipython/models/trackpage.py +110 -0
- spotifywebapipython/models/trackpagesaved.py +85 -0
- spotifywebapipython/models/trackpagesimplified.py +88 -0
- spotifywebapipython/models/trackrecommendations.py +88 -0
- spotifywebapipython/models/tracksaved.py +99 -0
- spotifywebapipython/models/tracksimplified.py +398 -0
- spotifywebapipython/models/userprofile.py +184 -0
- spotifywebapipython/models/userprofilesimplified.py +206 -0
- spotifywebapipython/models/zeroconfdiscoveryresult.py +592 -0
- spotifywebapipython/models/zeroconfproperty.py +93 -0
- spotifywebapipython/oauthcli/__init__.py +7 -0
- spotifywebapipython/oauthcli/authclient.py +1229 -0
- spotifywebapipython/saappmessages.py +86 -0
- spotifywebapipython/sautils.py +285 -0
- spotifywebapipython/spotifyapierror.py +66 -0
- spotifywebapipython/spotifyapimessage.py +269 -0
- spotifywebapipython/spotifyauthtoken.py +264 -0
- spotifywebapipython/spotifyclient.py +17885 -0
- spotifywebapipython/spotifyconnect/__init__.py +19 -0
- spotifywebapipython/spotifyconnect/spotifyconnectdeviceeventargs.py +67 -0
- spotifywebapipython/spotifyconnect/spotifyconnectdirectorytask.py +2564 -0
- spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastapptask.py +467 -0
- spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastcontroller.py +701 -0
- spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastlistener.py +359 -0
- spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastmultizonelistener.py +212 -0
- spotifywebapipython/spotifyconnect/spotifyconnectzeroconfexceptions.py +20 -0
- spotifywebapipython/spotifyconnect/spotifyconnectzeroconflistener.py +335 -0
- spotifywebapipython/spotifydiscovery.py +473 -0
- spotifywebapipython/spotifymediatypes.py +53 -0
- spotifywebapipython/spotifywebapiauthenticationerror.py +122 -0
- spotifywebapipython/spotifywebapierror.py +106 -0
- spotifywebapipython/spotifywebplayertoken.py +743 -0
- spotifywebapipython/vibrant/__init__.py +17 -0
- spotifywebapipython/vibrant/generator.py +261 -0
- spotifywebapipython/vibrant/image.py +100 -0
- spotifywebapipython/vibrant/main.py +34 -0
- spotifywebapipython/vibrant/models.py +93 -0
- spotifywebapipython/vibrant/utils.py +56 -0
- spotifywebapipython/zeroconfapi/__init__.py +23 -0
- spotifywebapipython/zeroconfapi/authenticationtypes.py +38 -0
- spotifywebapipython/zeroconfapi/blobbuilder.py +370 -0
- spotifywebapipython/zeroconfapi/credentials.py +37 -0
- spotifywebapipython/zeroconfapi/cryptodiffiehellman.py +89 -0
- spotifywebapipython/zeroconfapi/helpers.py +64 -0
- spotifywebapipython/zeroconfapi/spotifyzeroconfapierror.py +108 -0
- spotifywebapipython/zeroconfapi/zeroconfconnect.py +1327 -0
- spotifywebapipython/zeroconfapi/zeroconfgetinfo.py +572 -0
- spotifywebapipython/zeroconfapi/zeroconfgetinfoalias.py +109 -0
- spotifywebapipython/zeroconfapi/zeroconfgetinfodrmmediaformat.py +90 -0
- spotifywebapipython/zeroconfapi/zeroconfresponse.py +195 -0
- spotifywebapipython-1.0.242.dist-info/LICENSE +22 -0
- spotifywebapipython-1.0.242.dist-info/METADATA +219 -0
- spotifywebapipython-1.0.242.dist-info/RECORD +138 -0
- spotifywebapipython-1.0.242.dist-info/WHEEL +5 -0
- spotifywebapipython-1.0.242.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,620 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<meta name="generator" content="pdoc 14.3.0"/>
|
|
7
|
+
<title> spotifywebapipython ‐
|
|
8
|
+
sautils API Documentation
|
|
9
|
+
</title>
|
|
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
|
+
<!-- build env - Package Name = "spotifywebapipython" -->
|
|
12
|
+
<!-- build env - Package Version = "1.0.242" -->
|
|
13
|
+
<!-- pdoc module.modulename = "spotifywebapipython.sautils" -->
|
|
14
|
+
<!-- pdoc module.is_package = "False" -->
|
|
15
|
+
<!-- pdoc root_module_name = "None" -->
|
|
16
|
+
<!-- pdoc namespace levels = "1" -->
|
|
17
|
+
<script type="text/javascript" src="../codecopy.js"></script>
|
|
18
|
+
|
|
19
|
+
<style>/*! * Bootstrap Reboot v5.0.0 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}</style>
|
|
20
|
+
<style>/*! syntax-highlighting.css */pre{line-height:125%;}span.linenos{color:inherit; background-color:transparent; padding-left:5px; padding-right:20px;}.pdoc-code .hll{background-color:#49483e}.pdoc-code{background:#272822; color:#f8f8f2}.pdoc-code .c{color:#75715e}.pdoc-code .err{color:#960050; background-color:#1e0010}.pdoc-code .esc{color:#f8f8f2}.pdoc-code .g{color:#f8f8f2}.pdoc-code .k{color:#66d9ef}.pdoc-code .l{color:#ae81ff}.pdoc-code .n{color:#ffc633}.pdoc-code .o{color:#f92672}.pdoc-code .x{color:#f8f8f2}.pdoc-code .p{color:#f8f8f2}.pdoc-code .ch{color:#75715e}.pdoc-code .cm{color:#75715e}.pdoc-code .cp{color:#75715e}.pdoc-code .cpf{color:#75715e}.pdoc-code .c1{color:#75715e}.pdoc-code .cs{color:#75715e}.pdoc-code .gd{color:#f92672}.pdoc-code .ge{color:#f8f8f2; font-style:italic}.pdoc-code .gr{color:#f8f8f2}.pdoc-code .gh{color:#f8f8f2}.pdoc-code .gi{color:#a6e22e}.pdoc-code .go{color:#66d9ef}.pdoc-code .gp{color:#f92672; font-weight:bold}.pdoc-code .gs{color:#f8f8f2; font-weight:bold}.pdoc-code .gu{color:#75715e}.pdoc-code .gt{color:#f8f8f2}.pdoc-code .kc{color:#66d9ef}.pdoc-code .kd{color:#66d9ef}.pdoc-code .kn{color:#f92672}.pdoc-code .kp{color:#66d9ef}.pdoc-code .kr{color:#66d9ef}.pdoc-code .kt{color:#66d9ef}.pdoc-code .ld{color:#e6db74}.pdoc-code .m{color:#ae81ff}.pdoc-code .s{color:#e6db74}.pdoc-code .na{color:#a6e22e}.pdoc-code .nb{color:#f8f8f2}.pdoc-code .nc{color:#a6e22e}.pdoc-code .no{color:#66d9ef}.pdoc-code .nd{color:#a6e22e}.pdoc-code .ni{color:#f8f8f2}.pdoc-code .ne{color:#a6e22e}.pdoc-code .nf{color:#a6e22e}.pdoc-code .nl{color:#f8f8f2}.pdoc-code .nn{color:#f8f8f2}.pdoc-code .nx{color:#a6e22e}.pdoc-code .py{color:#f8f8f2}.pdoc-code .nt{color:#f92672}.pdoc-code .nv{color:#f8f8f2}.pdoc-code .ow{color:#f92672}.pdoc-code .w{color:#f8f8f2}.pdoc-code .mb{color:#ae81ff}.pdoc-code .mf{color:#ae81ff}.pdoc-code .mh{color:#ae81ff}.pdoc-code .mi{color:#ae81ff}.pdoc-code .mo{color:#ae81ff}.pdoc-code .sa{color:#e6db74}.pdoc-code .sb{color:#e6db74}.pdoc-code .sc{color:#e6db74}.pdoc-code .dl{color:#e6db74}.pdoc-code .sd{color:#e6db74}.pdoc-code .s2{color:#e6db74}.pdoc-code .se{color:#ae81ff}.pdoc-code .sh{color:#e6db74}.pdoc-code .si{color:#e6db74}.pdoc-code .sx{color:#e6db74}.pdoc-code .sr{color:#e6db74}.pdoc-code .s1{color:#e6db74}.pdoc-code .ss{color:#e6db74}.pdoc-code .bp{color:#f8f8f2}.pdoc-code .fm{color:#a6e22e}.pdoc-code .vc{color:#f8f8f2}.pdoc-code .vg{color:#f8f8f2}.pdoc-code .vi{color:#f8f8f2}.pdoc-code .vm{color:#f8f8f2}</style>
|
|
21
|
+
<style>/*! theme.css */:root{--pdoc-background:#212529;}.pdoc{--text:#f7f7f7;--muted:#9d9d9d;--link:#58a6ff;--link-hover:#3989ff;--code:#333;--active:#555;--accent:#343434;--accent2:#555;--nav-hover:rgba(0, 0, 0, 0.1);--name:#77C1FF;--def:#0cdd0c;--annotation:#00c037;}</style>
|
|
22
|
+
<style>/*! layout.css */html, body{width:100%;height:100%;}html, main{scroll-behavior:smooth;}body{background-color:var(--pdoc-background);}@media (max-width:769px){#navtoggle{cursor:pointer;position:absolute;width:50px;height:40px;top:1rem;right:1rem;border-color:var(--text);color:var(--text);display:flex;opacity:0.8;z-index:999;}#navtoggle:hover{opacity:1;}#togglestate + div{display:none;}#togglestate:checked + div{display:inherit;}main, header{padding:2rem 3vw;}header + main{margin-top:-3rem;}.git-button{display:none !important;}nav input[type="search"]{max-width:77%;}nav input[type="search"]:first-child{margin-top:-6px;}nav input[type="search"]:valid ~ *{display:none !important;}}@media (min-width:770px){:root{--sidebar-width:clamp(12.5rem, 28vw, 22rem);}nav{position:fixed;overflow:auto;height:100vh;width:var(--sidebar-width);}main, header{padding:3rem 2rem 3rem calc(var(--sidebar-width) + 3rem);width:calc(54rem + var(--sidebar-width));max-width:100%;}header + main{margin-top:-4rem;}#navtoggle{display:none;}}#togglestate{position:absolute;height:0;opacity:0;}nav.pdoc{--pad:clamp(0.5rem, 2vw, 1.75rem);--indent:1.5rem;background-color:var(--accent);border-right:1px solid var(--accent2);box-shadow:0 0 20px rgba(50, 50, 50, .2) inset;padding:0 0 0 var(--pad);overflow-wrap:anywhere;scrollbar-width:thin; scrollbar-color:var(--accent2) transparent; z-index:1}nav.pdoc::-webkit-scrollbar{width:.4rem; }nav.pdoc::-webkit-scrollbar-thumb{background-color:var(--accent2); }nav.pdoc > div{padding:var(--pad) 0;}nav.pdoc .module-list-button{display:inline-flex;align-items:center;color:var(--text);border-color:var(--muted);margin-bottom:1rem;}nav.pdoc .module-list-button:hover{border-color:var(--text);}nav.pdoc input[type=search]{display:block;outline-offset:0;width:calc(100% - var(--pad));}nav.pdoc .logo{max-width:calc(100% - var(--pad));max-height:35vh;display:block;margin:0 auto 1rem;transform:translate(calc(-.5 * var(--pad)), 0);}nav.pdoc ul{list-style:none;padding-left:0;}nav.pdoc > div > ul{margin-left:calc(0px - var(--pad));}nav.pdoc li a{padding:.2rem 0 .2rem calc(var(--pad) + var(--indent));}nav.pdoc > div > ul > li > a{padding-left:var(--pad);}nav.pdoc li{transition:all 100ms;}nav.pdoc li:hover{background-color:var(--nav-hover);}nav.pdoc a, nav.pdoc a:hover{color:var(--text);}nav.pdoc a{display:block;}nav.pdoc > h2:first-of-type{margin-top:1.5rem;}nav.pdoc .class:before{content:"class ";color:var(--muted);}nav.pdoc .function:after{content:"()";color:var(--muted);}nav.pdoc footer:before{content:"";display:block;width:calc(100% - var(--pad));border-top:solid var(--accent2) 1px;margin-top:1.5rem;padding-top:.5rem;}nav.pdoc footer{font-size:small;}</style>
|
|
23
|
+
<style>/*! content.css */.pdoc{color:var(--text);box-sizing:border-box;line-height:1.5;background:none;}.pdoc .pdoc-button{cursor:pointer;display:inline-block;border:solid black 1px;border-radius:2px;font-size:.75rem;padding:calc(0.5em - 1px) 1em;transition:100ms all;}.pdoc .pdoc-alert{padding:1rem 1rem 1rem calc(1.5rem + 24px);border:1px solid transparent;border-radius:.25rem;background-repeat:no-repeat;background-position:1rem center;margin-bottom:1rem;}.pdoc .pdoc-alert > *:last-child{margin-bottom:0;}.pdoc .pdoc-alert-note {color:#084298;background-color:#cfe2ff;border-color:#b6d4fe;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22%23084298%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M8%2016A8%208%200%201%200%208%200a8%208%200%200%200%200%2016zm.93-9.412-1%204.705c-.07.34.029.533.304.533.194%200%20.487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703%200-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381%202.29-.287zM8%205.5a1%201%200%201%201%200-2%201%201%200%200%201%200%202z%22/%3E%3C/svg%3E");}.pdoc .pdoc-alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22%23664d03%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M8.982%201.566a1.13%201.13%200%200%200-1.96%200L.165%2013.233c-.457.778.091%201.767.98%201.767h13.713c.889%200%201.438-.99.98-1.767L8.982%201.566zM8%205c.535%200%20.954.462.9.995l-.35%203.507a.552.552%200%200%201-1.1%200L7.1%205.995A.905.905%200%200%201%208%205zm.002%206a1%201%200%201%201%200%202%201%201%200%200%201%200-2z%22/%3E%3C/svg%3E");}.pdoc .pdoc-alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22%23842029%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M5.52.359A.5.5%200%200%201%206%200h4a.5.5%200%200%201%20.474.658L8.694%206H12.5a.5.5%200%200%201%20.395.807l-7%209a.5.5%200%200%201-.873-.454L6.823%209.5H3.5a.5.5%200%200%201-.48-.641l2.5-8.5z%22/%3E%3C/svg%3E");}.pdoc .visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important;}.pdoc h1, .pdoc h2, .pdoc h3{font-weight:300;margin:.3em 0;padding:.2em 0;}.pdoc > section:not(.module-info) h1{font-size:1.5rem;font-weight:500;}.pdoc > section:not(.module-info) h2{font-size:1.4rem;font-weight:500;}.pdoc > section:not(.module-info) h3{font-size:1.3rem;font-weight:500;}.pdoc > section:not(.module-info) h4{font-size:1.2rem;}.pdoc > section:not(.module-info) h5{font-size:1.1rem;}.pdoc a{text-decoration:none;color:var(--link);}.pdoc a:hover{color:var(--link-hover);}.pdoc blockquote{margin-left:2rem;}.pdoc pre{border-top:1px solid var(--accent2);border-bottom:1px solid var(--accent2);margin-top:0;margin-bottom:1em;padding:.5rem 0 .5rem .5rem;overflow-x:auto;background-color:var(--code);}.pdoc code{color:var(--text);padding:.2em .4em;margin:0;font-size:85%;background-color:var(--accent);border-radius:6px;}.pdoc a > code{color:inherit;}.pdoc pre > code{display:inline-block;font-size:inherit;background:none;border:none;padding:0;}.pdoc > section:not(.module-info){margin-bottom:1.5rem;}.pdoc .modulename{margin-top:0;font-weight:bold;}.pdoc .modulename a{color:var(--link);transition:100ms all;}.pdoc .git-button{float:right;border:solid var(--link) 1px;}.pdoc .git-button:hover{background-color:var(--link);color:var(--pdoc-background);}.view-source-toggle-state,.view-source-toggle-state ~ .pdoc-code{display:none;}.view-source-toggle-state:checked ~ .pdoc-code{display:block;}.view-source-button{display:inline-block;float:right;font-size:.75rem;line-height:1.5rem;color:var(--muted);padding:0 .4rem 0 1.3rem;cursor:pointer;text-indent:-2px;}.view-source-button > span{visibility:hidden;}.module-info .view-source-button{float:none;display:flex;justify-content:flex-end;margin:-1.2rem .4rem -.2rem 0;}.view-source-button::before{position:absolute;content:"View Source";display:list-item;list-style-type:disclosure-closed;}.view-source-toggle-state:checked ~ .attr .view-source-button::before,.view-source-toggle-state:checked ~ .view-source-button::before{list-style-type:disclosure-open;}.pdoc .docstring{margin-bottom:1.5rem;}.pdoc section:not(.module-info) .docstring{margin-left:clamp(0rem, 5vw - 2rem, 1rem);}.pdoc .docstring .pdoc-code{margin-left:1em;margin-right:1em;}.pdoc h1:target,.pdoc h2:target,.pdoc h3:target,.pdoc h4:target,.pdoc h5:target,.pdoc h6:target,.pdoc .pdoc-code > pre > span:target{background-color:var(--active);box-shadow:-1rem 0 0 0 var(--active);}.pdoc .pdoc-code > pre > span:target{display:block;}.pdoc div:target > .attr,.pdoc section:target > .attr,.pdoc dd:target > a{background-color:var(--active);}.pdoc *{scroll-margin:2rem;}.pdoc .pdoc-code .linenos{user-select:none;}.pdoc .attr:hover{filter:contrast(0.95);}.pdoc section, .pdoc .classattr{position:relative;}.pdoc .headerlink{--width:clamp(1rem, 3vw, 2rem);position:absolute;top:0;left:calc(0rem - var(--width));transition:all 100ms ease-in-out;opacity:0;}.pdoc .headerlink::before{content:"#";display:block;text-align:center;width:var(--width);height:2.3rem;line-height:2.3rem;font-size:1.5rem;}.pdoc .attr:hover ~ .headerlink,.pdoc *:target > .headerlink,.pdoc .headerlink:hover{opacity:1;}.pdoc .attr{display:block;margin:.5rem 0 .5rem;padding:.4rem .4rem .4rem 1rem;background-color:var(--accent);overflow-x:auto;}.pdoc .classattr{margin-left:2rem;}.pdoc .name{color:var(--name);font-weight:bold;}.pdoc .def{color:var(--def);font-weight:bold;}.pdoc .signature{background-color:transparent;}.pdoc .param, .pdoc .return-annotation{white-space:pre;}.pdoc .signature.multiline .param{display:block;}.pdoc .signature.condensed .param{display:inline-block;}.pdoc .annotation{color:var(--annotation);}.pdoc .view-value-toggle-state,.pdoc .view-value-toggle-state ~ .default_value{display:none;}.pdoc .view-value-toggle-state:checked ~ .default_value{display:inherit;}.pdoc .view-value-button{font-size:.5rem;vertical-align:middle;border-style:dashed;margin-top:-0.1rem;}.pdoc .view-value-button:hover{background:white;}.pdoc .view-value-button::before{content:"show";text-align:center;width:2.2em;display:inline-block;}.pdoc .view-value-toggle-state:checked ~ .view-value-button::before{content:"hide";}.pdoc .inherited{margin-left:2rem;}.pdoc .inherited dt{font-weight:700;}.pdoc .inherited dt, .pdoc .inherited dd{display:inline;margin-left:0;margin-bottom:.5rem;}.pdoc .inherited dd:not(:last-child):after{content:", ";}.pdoc .inherited .class:before{content:"class ";}.pdoc .inherited .function a:after{content:"()";}.pdoc .search-result .docstring{overflow:auto;max-height:25vh;}.pdoc .search-result.focused > .attr{background-color:var(--active);}.pdoc .attribution{margin-top:2rem;display:block;opacity:0.5;transition:all 200ms;filter:grayscale(100%);}.pdoc .attribution:hover{opacity:1;filter:grayscale(0%);}.pdoc .attribution img{margin-left:5px;height:35px;vertical-align:middle;width:70px;transition:all 200ms;}.pdoc table{display:block;width:max-content;max-width:100%;overflow:auto;margin-bottom:1rem;}.pdoc table th{font-weight:600;}.pdoc table th, .pdoc table td{padding:6px 13px;border:1px solid var(--accent2);}</style>
|
|
24
|
+
<style>/*! custom.css */.deprecated{ color:#f62817; font-weight:bolder;}.warning{ color:orange; font-weight:normal;}.modulename{color:#58a6ff;}.signature .param span{color:#ffc633;}.docstring #arguments ~ ul strong{color:#ffc633;}.docstring #raises ~ ul strong{color:#f62817 !important;}#change-log ~ h6{ color:#ffc633;}details summary{ color:#58a6ff;}.footertext{ color:#58a6ff;}.pdoc .docstring .pdoc-code{ margin-left:0; margin-right:0;}div.codehilite{ background-color:var(--code); border-bottom:1px solid var(--accent2);}div.codehilite button{ color:var(--link); background:var(--pdoc-background); background-color:var(--code); border:none; box-sizing:border-box; transition:0.2s ease-out; cursor:pointer; user-select:none; padding:5px 10px; font-size:0.8em; z-index:9999; margin:2px; border-radius:0 0.15rem;}div.codehilite pre{ margin-bottom:0px;}</style></head>
|
|
25
|
+
<body>
|
|
26
|
+
<nav class="pdoc">
|
|
27
|
+
<label id="navtoggle" for="togglestate" class="pdoc-button"><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke-linecap='round' stroke="currentColor" stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg></label>
|
|
28
|
+
<input id="togglestate" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
29
|
+
<div> <a class="pdoc-button module-list-button" href="../index.html">
|
|
30
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-box-arrow-in-left" viewBox="0 0 16 16">
|
|
31
|
+
<path fill-rule="evenodd" d="M10 3.5a.5.5 0 0 0-.5-.5h-8a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 1 1 0v2A1.5 1.5 0 0 1 9.5 14h-8A1.5 1.5 0 0 1 0 12.5v-9A1.5 1.5 0 0 1 1.5 2h8A1.5 1.5 0 0 1 11 3.5v2a.5.5 0 0 1-1 0v-2z"/>
|
|
32
|
+
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
|
33
|
+
</svg>
|
|
34
|
+
Module Index
|
|
35
|
+
</a>
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
39
|
+
pattern=".+" required>
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
<h2>API Documentation</h2>
|
|
44
|
+
<ul class="memberlist">
|
|
45
|
+
<li>
|
|
46
|
+
<a class="variable" href="#SONOS_NOT_IMPLEMENTED">SONOS_NOT_IMPLEMENTED</a>
|
|
47
|
+
</li>
|
|
48
|
+
<li>
|
|
49
|
+
<a class="function" href="#GetUnixTimestampMSFromUtcNow">GetUnixTimestampMSFromUtcNow</a>
|
|
50
|
+
</li>
|
|
51
|
+
<li>
|
|
52
|
+
<a class="function" href="#passwordMaskString">passwordMaskString</a>
|
|
53
|
+
</li>
|
|
54
|
+
<li>
|
|
55
|
+
<a class="function" href="#mediaPositionHMS_fromSeconds">mediaPositionHMS_fromSeconds</a>
|
|
56
|
+
</li>
|
|
57
|
+
<li>
|
|
58
|
+
<a class="function" href="#mediaPositionHMS_toSeconds">mediaPositionHMS_toSeconds</a>
|
|
59
|
+
</li>
|
|
60
|
+
<li>
|
|
61
|
+
<a class="function" href="#static_init">static_init</a>
|
|
62
|
+
</li>
|
|
63
|
+
<li>
|
|
64
|
+
<a class="function" href="#export">export</a>
|
|
65
|
+
</li>
|
|
66
|
+
<li>
|
|
67
|
+
<a class="function" href="#validateDelay">validateDelay</a>
|
|
68
|
+
</li>
|
|
69
|
+
<li>
|
|
70
|
+
<a class="class" href="#Event">Event</a>
|
|
71
|
+
<ul class="memberlist">
|
|
72
|
+
<li>
|
|
73
|
+
<a class="function" href="#Event.__init__">Event</a>
|
|
74
|
+
</li>
|
|
75
|
+
<li>
|
|
76
|
+
<a class="variable" href="#Event.handlers">handlers</a>
|
|
77
|
+
</li>
|
|
78
|
+
<li>
|
|
79
|
+
<a class="function" href="#Event.fire">fire</a>
|
|
80
|
+
</li>
|
|
81
|
+
<li>
|
|
82
|
+
<a class="function" href="#Event.getHandlerCount">getHandlerCount</a>
|
|
83
|
+
</li>
|
|
84
|
+
<li>
|
|
85
|
+
<a class="function" href="#Event.handle">handle</a>
|
|
86
|
+
</li>
|
|
87
|
+
<li>
|
|
88
|
+
<a class="function" href="#Event.unhandle">unhandle</a>
|
|
89
|
+
</li>
|
|
90
|
+
<li>
|
|
91
|
+
<a class="function" href="#Event.unhandle_all">unhandle_all</a>
|
|
92
|
+
</li>
|
|
93
|
+
</ul>
|
|
94
|
+
|
|
95
|
+
</li>
|
|
96
|
+
</ul>
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
<footer class="footertext">
|
|
100
|
+
spotifywebapipython</br>
|
|
101
|
+
Version 1.0.242</br>
|
|
102
|
+
<a href="https://developer.spotify.com/documentation/web-api" target="_blank">
|
|
103
|
+
<img src="../spotifywebapipython.ico" alt="brand icon" style="width:32px; height:32px; padding:4px;"/>
|
|
104
|
+
A Spotify Web Api Client
|
|
105
|
+
</a>
|
|
106
|
+
</footer>
|
|
107
|
+
|
|
108
|
+
<a class="attribution" title="pdoc: Python API documentation generator" href="https://pdoc.dev" target="_blank">
|
|
109
|
+
built with <span class="visually-hidden">pdoc</span><img
|
|
110
|
+
alt="pdoc logo"
|
|
111
|
+
src="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"/>
|
|
112
|
+
</a>
|
|
113
|
+
</div>
|
|
114
|
+
</nav>
|
|
115
|
+
<main class="pdoc">
|
|
116
|
+
<section class="module-info">
|
|
117
|
+
<h1 class="modulename">
|
|
118
|
+
spotifywebapipython<wbr>.sautils </h1>
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
</section>
|
|
126
|
+
<section id="SONOS_NOT_IMPLEMENTED">
|
|
127
|
+
<div class="attr variable">
|
|
128
|
+
<span class="name">SONOS_NOT_IMPLEMENTED</span><span class="annotation">: str</span> =
|
|
129
|
+
<span class="default_value">'NOT_IMPLEMENTED'</span>
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
</div>
|
|
133
|
+
<a class="headerlink" href="#SONOS_NOT_IMPLEMENTED"></a>
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
</section>
|
|
138
|
+
<section id="GetUnixTimestampMSFromUtcNow">
|
|
139
|
+
<div class="attr function">
|
|
140
|
+
|
|
141
|
+
<span class="def">def</span>
|
|
142
|
+
<span class="name">GetUnixTimestampMSFromUtcNow</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">days</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>, </span><span class="param"><span class="n">hours</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>, </span><span class="param"><span class="n">minutes</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>, </span><span class="param"><span class="n">seconds</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span></span><span class="return-annotation">) -> <span class="nb">int</span>:</span></span>
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
</div>
|
|
146
|
+
<a class="headerlink" href="#GetUnixTimestampMSFromUtcNow"></a>
|
|
147
|
+
|
|
148
|
+
<div class="docstring"><p>Returns a Unix millisecond timestamp value from the current utc datetime for the
|
|
149
|
+
difference specified by input arguments.</p>
|
|
150
|
+
</div>
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
</section>
|
|
154
|
+
<section id="passwordMaskString">
|
|
155
|
+
<div class="attr function">
|
|
156
|
+
|
|
157
|
+
<span class="def">def</span>
|
|
158
|
+
<span class="name">passwordMaskString</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">inputObj</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
</div>
|
|
162
|
+
<a class="headerlink" href="#passwordMaskString"></a>
|
|
163
|
+
|
|
164
|
+
<div class="docstring"><p>Checks a string for a password value and masks the value so that the password is not displayed
|
|
165
|
+
in a trace file.</p>
|
|
166
|
+
|
|
167
|
+
<h6 id="arguments">Arguments:</h6>
|
|
168
|
+
|
|
169
|
+
<ul>
|
|
170
|
+
<li><strong>inputObj (str):</strong> String object to check.</li>
|
|
171
|
+
</ul>
|
|
172
|
+
|
|
173
|
+
<h6 id="returns">Returns:</h6>
|
|
174
|
+
|
|
175
|
+
<blockquote>
|
|
176
|
+
<p>A copy of the <code>inputObj</code> value with password masked.</p>
|
|
177
|
+
</blockquote>
|
|
178
|
+
</div>
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
</section>
|
|
182
|
+
<section id="mediaPositionHMS_fromSeconds">
|
|
183
|
+
<div class="attr function">
|
|
184
|
+
|
|
185
|
+
<span class="def">def</span>
|
|
186
|
+
<span class="name">mediaPositionHMS_fromSeconds</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">position</span><span class="p">:</span> <span class="nb">int</span></span><span class="return-annotation">) -> <span class="nb">float</span>:</span></span>
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
</div>
|
|
190
|
+
<a class="headerlink" href="#mediaPositionHMS_fromSeconds"></a>
|
|
191
|
+
|
|
192
|
+
<div class="docstring"><p>Converts an integer media position value from seconds to a string value in H:MM:SS format.</p>
|
|
193
|
+
|
|
194
|
+
<h6 id="arguments">Arguments:</h6>
|
|
195
|
+
|
|
196
|
+
<ul>
|
|
197
|
+
<li><strong>position (int):</strong> The position value (as specified in seconds) to convert.</li>
|
|
198
|
+
</ul>
|
|
199
|
+
</div>
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
</section>
|
|
203
|
+
<section id="mediaPositionHMS_toSeconds">
|
|
204
|
+
<div class="attr function">
|
|
205
|
+
|
|
206
|
+
<span class="def">def</span>
|
|
207
|
+
<span class="name">mediaPositionHMS_toSeconds</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">timestr</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="nb">int</span>:</span></span>
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
</div>
|
|
211
|
+
<a class="headerlink" href="#mediaPositionHMS_toSeconds"></a>
|
|
212
|
+
|
|
213
|
+
<div class="docstring"><p>Convert an "HH:MM:SS" string value to total number of seconds.</p>
|
|
214
|
+
|
|
215
|
+
<h6 id="arguments">Arguments:</h6>
|
|
216
|
+
|
|
217
|
+
<ul>
|
|
218
|
+
<li><strong>timestr (int):</strong> The position value (as specified in H:MM:SS) to convert.</li>
|
|
219
|
+
</ul>
|
|
220
|
+
</div>
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
</section>
|
|
224
|
+
<section id="static_init">
|
|
225
|
+
<div class="attr function">
|
|
226
|
+
|
|
227
|
+
<span class="def">def</span>
|
|
228
|
+
<span class="name">static_init</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">cls</span></span><span class="return-annotation">):</span></span>
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
</div>
|
|
232
|
+
<a class="headerlink" href="#static_init"></a>
|
|
233
|
+
|
|
234
|
+
<div class="docstring"><p>Define the decorator used to call an initializer for a class with all static methods.
|
|
235
|
+
This allows static variables to be initialized one time for the class.</p>
|
|
236
|
+
</div>
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
</section>
|
|
240
|
+
<section id="export">
|
|
241
|
+
<div class="attr function">
|
|
242
|
+
|
|
243
|
+
<span class="def">def</span>
|
|
244
|
+
<span class="name">export</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">fn</span></span><span class="return-annotation">):</span></span>
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
</div>
|
|
248
|
+
<a class="headerlink" href="#export"></a>
|
|
249
|
+
|
|
250
|
+
<div class="docstring"><p>Define the decorator used to modify a module's "__all__" variable.
|
|
251
|
+
This avoids us having to manually modify a module's "__all__" variable when adding new classes.</p>
|
|
252
|
+
</div>
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
</section>
|
|
256
|
+
<section id="validateDelay">
|
|
257
|
+
<div class="attr function">
|
|
258
|
+
|
|
259
|
+
<span class="def">def</span>
|
|
260
|
+
<span class="name">validateDelay</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">delay</span><span class="p">:</span> <span class="nb">float</span>, </span><span class="param"><span class="n">default</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">0.5</span>, </span><span class="param"><span class="n">maxDelay</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">10</span></span><span class="return-annotation">) -> <span class="nb">float</span>:</span></span>
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
</div>
|
|
264
|
+
<a class="headerlink" href="#validateDelay"></a>
|
|
265
|
+
|
|
266
|
+
<div class="docstring"><p>Validates a delay value.</p>
|
|
267
|
+
|
|
268
|
+
<h6 id="arguments">Arguments:</h6>
|
|
269
|
+
|
|
270
|
+
<ul>
|
|
271
|
+
<li><strong>delay (int):</strong> The delay value to validate.</li>
|
|
272
|
+
<li><strong>default (int):</strong> The default delay value to set if the user-input delay is not valid.</li>
|
|
273
|
+
<li><strong>maxDelay (int):</strong> The maximum delay value allowed. <br />
|
|
274
|
+
Default is 10.</li>
|
|
275
|
+
</ul>
|
|
276
|
+
</div>
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
</section>
|
|
280
|
+
<section id="Event">
|
|
281
|
+
<div class="attr class">
|
|
282
|
+
|
|
283
|
+
<span class="def">class</span>
|
|
284
|
+
<span class="name">Event</span>:
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
</div>
|
|
288
|
+
<a class="headerlink" href="#Event"></a>
|
|
289
|
+
|
|
290
|
+
<div class="docstring"><p>C# like event processing in Python3.</p>
|
|
291
|
+
|
|
292
|
+
<p><details>
|
|
293
|
+
<summary>View Sample Code</summary></p>
|
|
294
|
+
|
|
295
|
+
<div class="pdoc-code codehilite">
|
|
296
|
+
<pre><span></span><code><span class="c1"># Define the class that will be raising events:</span>
|
|
297
|
+
<span class="k">class</span><span class="w"> </span><span class="nc">MyFileWatcher</span><span class="p">:</span>
|
|
298
|
+
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
299
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">fileChanged</span> <span class="o">=</span> <span class="n">Event</span><span class="p">()</span> <span class="c1"># define event</span>
|
|
300
|
+
|
|
301
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">watchFiles</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
302
|
+
<span class="n">source_path</span> <span class="o">=</span> <span class="s2">"foo"</span>
|
|
303
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">fileChanged</span><span class="p">(</span><span class="n">source_path</span><span class="p">)</span> <span class="c1"># fire event</span>
|
|
304
|
+
|
|
305
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">log_file_change</span><span class="p">(</span><span class="n">source_path</span><span class="p">):</span> <span class="c1"># event handler 1</span>
|
|
306
|
+
<span class="nb">print</span> <span class="s2">"</span><span class="si">%r</span><span class="s2"> changed."</span> <span class="o">%</span> <span class="p">(</span><span class="n">source_path</span><span class="p">,)</span>
|
|
307
|
+
|
|
308
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">log_file_change2</span><span class="p">(</span><span class="n">source_path</span><span class="p">):</span> <span class="c1"># event handler 2</span>
|
|
309
|
+
<span class="nb">print</span> <span class="s2">"</span><span class="si">%r</span><span class="s2"> changed!"</span> <span class="o">%</span> <span class="p">(</span><span class="n">source_path</span><span class="p">,)</span>
|
|
310
|
+
|
|
311
|
+
<span class="c1"># Define the code that will be handling raised events.</span>
|
|
312
|
+
<span class="n">watcher</span> <span class="o">=</span> <span class="n">MyFileWatcher</span><span class="p">()</span>
|
|
313
|
+
<span class="n">watcher</span><span class="o">.</span><span class="n">fileChanged</span> <span class="o">+=</span> <span class="n">log_file_change2</span>
|
|
314
|
+
<span class="n">watcher</span><span class="o">.</span><span class="n">fileChanged</span> <span class="o">+=</span> <span class="n">log_file_change</span>
|
|
315
|
+
<span class="n">watcher</span><span class="o">.</span><span class="n">fileChanged</span> <span class="o">-=</span> <span class="n">log_file_change2</span>
|
|
316
|
+
<span class="n">watcher</span><span class="o">.</span><span class="n">watchFiles</span><span class="p">()</span>
|
|
317
|
+
</code></pre>
|
|
318
|
+
</div>
|
|
319
|
+
|
|
320
|
+
<p></details></p>
|
|
321
|
+
</div>
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
<div id="Event.__init__" class="classattr">
|
|
325
|
+
<div class="attr function">
|
|
326
|
+
|
|
327
|
+
<span class="name">Event</span><span class="signature pdoc-code condensed">(<span class="param"><span class="o">*</span><span class="n">args</span></span>)</span>
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
</div>
|
|
331
|
+
<a class="headerlink" href="#Event.__init__"></a>
|
|
332
|
+
|
|
333
|
+
<div class="docstring"><p>Initializes a new instance of the class.</p>
|
|
334
|
+
</div>
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
</div>
|
|
338
|
+
<div id="Event.handlers" class="classattr">
|
|
339
|
+
<div class="attr variable">
|
|
340
|
+
<span class="name">handlers</span>
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
</div>
|
|
344
|
+
<a class="headerlink" href="#Event.handlers"></a>
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
</div>
|
|
349
|
+
<div id="Event.fire" class="classattr">
|
|
350
|
+
<div class="attr function">
|
|
351
|
+
|
|
352
|
+
<span class="def">def</span>
|
|
353
|
+
<span class="name">fire</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="o">*</span><span class="n">args</span>, </span><span class="param"><span class="o">**</span><span class="n">kargs</span></span><span class="return-annotation">):</span></span>
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
</div>
|
|
357
|
+
<a class="headerlink" href="#Event.fire"></a>
|
|
358
|
+
|
|
359
|
+
<div class="docstring"><p>Calls (i.e. "fires") all method handlers defined for this event.</p>
|
|
360
|
+
|
|
361
|
+
<p>Exceptions will be ignored for individual handlers.</p>
|
|
362
|
+
</div>
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
</div>
|
|
366
|
+
<div id="Event.getHandlerCount" class="classattr">
|
|
367
|
+
<div class="attr function">
|
|
368
|
+
|
|
369
|
+
<span class="def">def</span>
|
|
370
|
+
<span class="name">getHandlerCount</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">):</span></span>
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
</div>
|
|
374
|
+
<a class="headerlink" href="#Event.getHandlerCount"></a>
|
|
375
|
+
|
|
376
|
+
<div class="docstring"><p>Returns the number of method handlers defined for this event.</p>
|
|
377
|
+
</div>
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
</div>
|
|
381
|
+
<div id="Event.handle" class="classattr">
|
|
382
|
+
<div class="attr function">
|
|
383
|
+
|
|
384
|
+
<span class="def">def</span>
|
|
385
|
+
<span class="name">handle</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">handler</span></span><span class="return-annotation">):</span></span>
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
</div>
|
|
389
|
+
<a class="headerlink" href="#Event.handle"></a>
|
|
390
|
+
|
|
391
|
+
<div class="docstring"><p>Adds a method handler for this event.</p>
|
|
392
|
+
</div>
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
</div>
|
|
396
|
+
<div id="Event.unhandle" class="classattr">
|
|
397
|
+
<div class="attr function">
|
|
398
|
+
|
|
399
|
+
<span class="def">def</span>
|
|
400
|
+
<span class="name">unhandle</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">handler</span></span><span class="return-annotation">):</span></span>
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
</div>
|
|
404
|
+
<a class="headerlink" href="#Event.unhandle"></a>
|
|
405
|
+
|
|
406
|
+
<div class="docstring"><p>Removes the specified method handler for this event.</p>
|
|
407
|
+
|
|
408
|
+
<h6 id="arguments">Arguments:</h6>
|
|
409
|
+
|
|
410
|
+
<ul>
|
|
411
|
+
<li><strong>handler (object):</strong> The method handler to remove.</li>
|
|
412
|
+
</ul>
|
|
413
|
+
|
|
414
|
+
<p>This method will not throw an exception.</p>
|
|
415
|
+
</div>
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
</div>
|
|
419
|
+
<div id="Event.unhandle_all" class="classattr">
|
|
420
|
+
<div class="attr function">
|
|
421
|
+
|
|
422
|
+
<span class="def">def</span>
|
|
423
|
+
<span class="name">unhandle_all</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">):</span></span>
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
</div>
|
|
427
|
+
<a class="headerlink" href="#Event.unhandle_all"></a>
|
|
428
|
+
|
|
429
|
+
<div class="docstring"><p>Removes all method handlers (if any) for this event.</p>
|
|
430
|
+
|
|
431
|
+
<p>This method will not throw an exception.</p>
|
|
432
|
+
</div>
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
</div>
|
|
436
|
+
</section>
|
|
437
|
+
</main>
|
|
438
|
+
<script>
|
|
439
|
+
function escapeHTML(html) {
|
|
440
|
+
return document.createElement('div').appendChild(document.createTextNode(html)).parentNode.innerHTML;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
const originalContent = document.querySelector("main.pdoc");
|
|
444
|
+
let currentContent = originalContent;
|
|
445
|
+
|
|
446
|
+
function setContent(innerHTML) {
|
|
447
|
+
let elem;
|
|
448
|
+
if (innerHTML) {
|
|
449
|
+
elem = document.createElement("main");
|
|
450
|
+
elem.classList.add("pdoc");
|
|
451
|
+
elem.innerHTML = innerHTML;
|
|
452
|
+
} else {
|
|
453
|
+
elem = originalContent;
|
|
454
|
+
}
|
|
455
|
+
if (currentContent !== elem) {
|
|
456
|
+
currentContent.replaceWith(elem);
|
|
457
|
+
currentContent = elem;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
function getSearchTerm() {
|
|
462
|
+
return (new URL(window.location)).searchParams.get("search");
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
const searchBox = document.querySelector(".pdoc input[type=search]");
|
|
466
|
+
searchBox.addEventListener("input", function () {
|
|
467
|
+
let url = new URL(window.location);
|
|
468
|
+
if (searchBox.value.trim()) {
|
|
469
|
+
url.hash = "";
|
|
470
|
+
url.searchParams.set("search", searchBox.value);
|
|
471
|
+
} else {
|
|
472
|
+
url.searchParams.delete("search");
|
|
473
|
+
}
|
|
474
|
+
history.replaceState("", "", url.toString());
|
|
475
|
+
onInput();
|
|
476
|
+
});
|
|
477
|
+
window.addEventListener("popstate", onInput);
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
let search, searchErr;
|
|
481
|
+
|
|
482
|
+
async function initialize() {
|
|
483
|
+
try {
|
|
484
|
+
search = await new Promise((resolve, reject) => {
|
|
485
|
+
const script = document.createElement("script");
|
|
486
|
+
script.type = "text/javascript";
|
|
487
|
+
script.async = true;
|
|
488
|
+
script.onload = () => resolve(window.pdocSearch);
|
|
489
|
+
script.onerror = (e) => reject(e);
|
|
490
|
+
script.src = "../search.js";
|
|
491
|
+
document.getElementsByTagName("head")[0].appendChild(script);
|
|
492
|
+
});
|
|
493
|
+
} catch (e) {
|
|
494
|
+
console.error("Cannot fetch pdoc search index");
|
|
495
|
+
searchErr = "Cannot fetch search index.";
|
|
496
|
+
}
|
|
497
|
+
onInput();
|
|
498
|
+
|
|
499
|
+
document.querySelector("nav.pdoc").addEventListener("click", e => {
|
|
500
|
+
if (e.target.hash) {
|
|
501
|
+
searchBox.value = "";
|
|
502
|
+
searchBox.dispatchEvent(new Event("input"));
|
|
503
|
+
}
|
|
504
|
+
});
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
function onInput() {
|
|
508
|
+
setContent((() => {
|
|
509
|
+
const term = getSearchTerm();
|
|
510
|
+
if (!term) {
|
|
511
|
+
return null
|
|
512
|
+
}
|
|
513
|
+
if (searchErr) {
|
|
514
|
+
return `<h3>Error: ${searchErr}</h3>`
|
|
515
|
+
}
|
|
516
|
+
if (!search) {
|
|
517
|
+
return "<h3>Searching...</h3>"
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
window.scrollTo({top: 0, left: 0, behavior: 'auto'});
|
|
521
|
+
|
|
522
|
+
const results = search(term);
|
|
523
|
+
|
|
524
|
+
let html;
|
|
525
|
+
if (results.length === 0) {
|
|
526
|
+
html = `No search results for '${escapeHTML(term)}'.`
|
|
527
|
+
} else {
|
|
528
|
+
html = `<h4>${results.length} search result${results.length > 1 ? "s" : ""} for '${escapeHTML(term)}'.</h4>`;
|
|
529
|
+
}
|
|
530
|
+
for (let result of results.slice(0, 10)) {
|
|
531
|
+
let doc = result.doc;
|
|
532
|
+
let url = `../${doc.modulename.replaceAll(".", "/")}.html`;
|
|
533
|
+
if (doc.qualname) {
|
|
534
|
+
url += `#${doc.qualname}`;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
let heading;
|
|
538
|
+
switch (result.doc.kind) {
|
|
539
|
+
case "function":
|
|
540
|
+
if (doc.fullname.endsWith(".__init__")) {
|
|
541
|
+
heading = `<span class="name">${doc.fullname.replace(/\.__init__$/, "")}</span>${doc.signature}`;
|
|
542
|
+
} else {
|
|
543
|
+
heading = `<span class="def">${doc.funcdef}</span> <span class="name">${doc.fullname}</span>${doc.signature}`;
|
|
544
|
+
}
|
|
545
|
+
break;
|
|
546
|
+
case "class":
|
|
547
|
+
heading = `<span class="def">class</span> <span class="name">${doc.fullname}</span>`;
|
|
548
|
+
if (doc.bases)
|
|
549
|
+
heading += `<wbr>(<span class="base">${doc.bases}</span>)`;
|
|
550
|
+
heading += `:`;
|
|
551
|
+
break;
|
|
552
|
+
case "variable":
|
|
553
|
+
heading = `<span class="name">${doc.fullname}</span>`;
|
|
554
|
+
if (doc.annotation)
|
|
555
|
+
heading += `<span class="annotation">${doc.annotation}</span>`;
|
|
556
|
+
if (doc.default_value)
|
|
557
|
+
heading += `<span class="default_value"> = ${doc.default_value}</span>`;
|
|
558
|
+
break;
|
|
559
|
+
default:
|
|
560
|
+
heading = `<span class="name">${doc.fullname}</span>`;
|
|
561
|
+
break;
|
|
562
|
+
}
|
|
563
|
+
html += `
|
|
564
|
+
<section class="search-result">
|
|
565
|
+
<a href="${url}" class="attr ${doc.kind}">${heading}</a>
|
|
566
|
+
<div class="docstring">${doc.doc}</div>
|
|
567
|
+
</section>
|
|
568
|
+
`;
|
|
569
|
+
|
|
570
|
+
}
|
|
571
|
+
return html;
|
|
572
|
+
})());
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
if (getSearchTerm()) {
|
|
576
|
+
initialize();
|
|
577
|
+
searchBox.value = getSearchTerm();
|
|
578
|
+
onInput();
|
|
579
|
+
} else {
|
|
580
|
+
searchBox.addEventListener("focus", initialize, {once: true});
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
searchBox.addEventListener("keydown", e => {
|
|
584
|
+
if (["ArrowDown", "ArrowUp", "Enter"].includes(e.key)) {
|
|
585
|
+
let focused = currentContent.querySelector(".search-result.focused");
|
|
586
|
+
if (!focused) {
|
|
587
|
+
currentContent.querySelector(".search-result").classList.add("focused");
|
|
588
|
+
} else if (
|
|
589
|
+
e.key === "ArrowDown"
|
|
590
|
+
&& focused.nextElementSibling
|
|
591
|
+
&& focused.nextElementSibling.classList.contains("search-result")
|
|
592
|
+
) {
|
|
593
|
+
focused.classList.remove("focused");
|
|
594
|
+
focused.nextElementSibling.classList.add("focused");
|
|
595
|
+
focused.nextElementSibling.scrollIntoView({
|
|
596
|
+
behavior: "smooth",
|
|
597
|
+
block: "nearest",
|
|
598
|
+
inline: "nearest"
|
|
599
|
+
});
|
|
600
|
+
} else if (
|
|
601
|
+
e.key === "ArrowUp"
|
|
602
|
+
&& focused.previousElementSibling
|
|
603
|
+
&& focused.previousElementSibling.classList.contains("search-result")
|
|
604
|
+
) {
|
|
605
|
+
focused.classList.remove("focused");
|
|
606
|
+
focused.previousElementSibling.classList.add("focused");
|
|
607
|
+
focused.previousElementSibling.scrollIntoView({
|
|
608
|
+
behavior: "smooth",
|
|
609
|
+
block: "nearest",
|
|
610
|
+
inline: "nearest"
|
|
611
|
+
});
|
|
612
|
+
} else if (
|
|
613
|
+
e.key === "Enter"
|
|
614
|
+
) {
|
|
615
|
+
focused.querySelector("a").click();
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
});
|
|
619
|
+
</script></body>
|
|
620
|
+
</html>
|