Merge branch 'keyring-optional'

This commit is contained in:
Sumner Evans
2020-05-06 23:21:12 -06:00
11 changed files with 217 additions and 202 deletions

1
.gitignore vendored
View File

@@ -1,4 +1,5 @@
flatpak/flatpak_build_dir/ flatpak/flatpak_build_dir/
flatpak/sublime-music.flatpak
# Created by https://www.gitignore.io/api/python # Created by https://www.gitignore.io/api/python
# Edit at https://www.gitignore.io/?templates=python # Edit at https://www.gitignore.io/?templates=python

View File

@@ -64,7 +64,6 @@ build_logo:
build_flatpak: build_flatpak:
image: registry.gitlab.com/sumner/sublime-music/flatpak-build:latest image: registry.gitlab.com/sumner/sublime-music/flatpak-build:latest
allow_failure: true
stage: build stage: build
script: script:
- cd flatpak - cd flatpak

View File

@@ -66,14 +66,14 @@ environment, you can use::
Building the flatpak Building the flatpak
-------------------- --------------------
*(currently broken)*
- A flatpak-builder environment must be setup on the build machine to do a - A flatpak-builder environment must be setup on the build machine to do a
flatpak build. This includes ``org.gnome.SDK//3.34`` and flatpak build. This includes ``org.gnome.SDK//3.34`` and
``org.gnome.Platform//3.34``. ``org.gnome.Platform//3.34``.
- The ``flatpak`` folder contains the required files to build a flatpak package. - The ``flatpak`` folder contains the required files to build a flatpak package.
- The script ``flatpak_build.sh`` will run the required commands to grab the - The script ``flatpak_build.sh`` will run the required commands to grab the
remaining dependencies and build the flatpak. remaining dependencies and build the flatpak.
- You can install the Flatpak using: ``flatpak install sublime-music.flatpak``
and run it using ``flatpak run com.sumnerevans.SublimeMusic``.
Code Style Code Style
---------- ----------

View File

@@ -25,7 +25,7 @@ termcolor = "*"
yapf = "*" yapf = "*"
[packages] [packages]
sublime-music = {editable = true,path = "."} sublime-music = {editable = true,extras = ["keyring"],path = "."}
[requires] [requires]
python_version = "3.8" python_version = "3.8"

329
Pipfile.lock generated
View File

@@ -1,7 +1,7 @@
{ {
"_meta": { "_meta": {
"hash": { "hash": {
"sha256": "1697c1d3c4480dbec759d96e80b367e508d813cb2183a1c6226f56ee0be8fac6" "sha256": "1f998ec38046cff69f63ed51610a1ca33bef37635020695781f57684daa9da01"
}, },
"pipfile-spec": 6, "pipfile-spec": 6,
"requires": { "requires": {
@@ -25,17 +25,17 @@
}, },
"casttube": { "casttube": {
"hashes": [ "hashes": [
"sha256:0979c7126e7bd6a09ebe45b819dcdfeb9b77839c2650b5b97333168150c4265c", "sha256:36f118007f9eead3959cf30de03c1640b53a263569ff2a3971c0521826c835b2",
"sha256:f25b3c634efe702896233690f7590e8d6311590910f18dbb763b90419d9ef53c" "sha256:54d2af8c7949aa9c5db87fb11ef0a478a5d3e7ac6d2d2ac8dd1711e3a516fc82"
], ],
"version": "==0.2.0" "version": "==0.2.1"
}, },
"certifi": { "certifi": {
"hashes": [ "hashes": [
"sha256:017c25db2a153ce562900032d5bc68e9f191e44e9a0f762f373977de9df1fbb3", "sha256:1d987a998c75633c40847cc966fcf5904906c920a7f17ef374f5aa4282abd304",
"sha256:25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f" "sha256:51fcb31174be6e6664c5f69e3e1691a2d72a1a12e90f872cbdb1567eb47b6519"
], ],
"version": "==2019.11.28" "version": "==2020.4.5.1"
}, },
"cffi": { "cffi": {
"hashes": [ "hashes": [
@@ -79,43 +79,41 @@
}, },
"cryptography": { "cryptography": {
"hashes": [ "hashes": [
"sha256:02079a6addc7b5140ba0825f542c0869ff4df9a69c360e339ecead5baefa843c", "sha256:091d31c42f444c6f519485ed528d8b451d1a0c7bf30e8ca583a0cac44b8a0df6",
"sha256:1df22371fbf2004c6f64e927668734070a8953362cd8370ddd336774d6743595", "sha256:18452582a3c85b96014b45686af264563e3e5d99d226589f057ace56196ec78b",
"sha256:369d2346db5934345787451504853ad9d342d7f721ae82d098083e1f49a582ad", "sha256:1dfa985f62b137909496e7fc182dac687206d8d089dd03eaeb28ae16eec8e7d5",
"sha256:3cda1f0ed8747339bbdf71b9f38ca74c7b592f24f65cdb3ab3765e4b02871651", "sha256:1e4014639d3d73fbc5ceff206049c5a9a849cefd106a49fa7aaaa25cc0ce35cf",
"sha256:44ff04138935882fef7c686878e1c8fd80a723161ad6a98da31e14b7553170c2", "sha256:22e91636a51170df0ae4dcbd250d318fd28c9f491c4e50b625a49964b24fe46e",
"sha256:4b1030728872c59687badcca1e225a9103440e467c17d6d1730ab3d2d64bfeff", "sha256:3b3eba865ea2754738616f87292b7f29448aec342a7c720956f8083d252bf28b",
"sha256:58363dbd966afb4f89b3b11dfb8ff200058fbc3b947507675c19ceb46104b48d", "sha256:651448cd2e3a6bc2bb76c3663785133c40d5e1a8c1a9c5429e4354201c6024ae",
"sha256:6ec280fb24d27e3d97aa731e16207d58bd8ae94ef6eab97249a2afe4ba643d42", "sha256:726086c17f94747cedbee6efa77e99ae170caebeb1116353c6cf0ab67ea6829b",
"sha256:7270a6c29199adc1297776937a05b59720e8a782531f1f122f2eb8467f9aab4d", "sha256:844a76bc04472e5135b909da6aed84360f522ff5dfa47f93e3dd2a0b84a89fa0",
"sha256:73fd30c57fa2d0a1d7a49c561c40c2f79c7d6c374cc7750e9ac7c99176f6428e", "sha256:88c881dd5a147e08d1bdcf2315c04972381d026cdb803325c03fe2b4a8ed858b",
"sha256:7f09806ed4fbea8f51585231ba742b58cbcfbfe823ea197d8c89a5e433c7e912", "sha256:96c080ae7118c10fcbe6229ab43eb8b090fccd31a09ef55f83f690d1ef619a1d",
"sha256:90df0cc93e1f8d2fba8365fb59a858f51a11a394d64dbf3ef844f783844cc793", "sha256:a0c30272fb4ddda5f5ffc1089d7405b7a71b0b0f51993cb4e5dbb4590b2fc229",
"sha256:971221ed40f058f5662a604bd1ae6e4521d84e6cad0b7b170564cc34169c8f13", "sha256:bb1f0281887d89617b4c68e8db9a2c42b9efebf2702a3c5bf70599421a8623e3",
"sha256:a518c153a2b5ed6b8cc03f7ae79d5ffad7315ad4569b2d5333a13c38d64bd8d7", "sha256:c447cf087cf2dbddc1add6987bbe2f767ed5317adb2d08af940db517dd704365",
"sha256:b0de590a8b0979649ebeef8bb9f54394d3a41f66c5584fff4220901739b6b2f0", "sha256:c4fd17d92e9d55b84707f4fd09992081ba872d1a0c610c109c18e062e06a2e55",
"sha256:b43f53f29816ba1db8525f006fa6f49292e9b029554b3eb56a189a70f2a40879", "sha256:d0d5aeaedd29be304848f1c5059074a740fa9f6f26b84c5b63e8b29e73dfc270",
"sha256:d31402aad60ed889c7e57934a03477b572a03af7794fa8fb1780f21ea8f6551f", "sha256:daf54a4b07d67ad437ff239c8a4080cfd1cc7213df57d33c97de7b4738048d5e",
"sha256:de96157ec73458a7f14e3d26f17f8128c959084931e8997b9e655a39c8fde9f9", "sha256:e993468c859d084d5579e2ebee101de8f5a27ce8e2159959b6673b418fd8c785",
"sha256:df6b4dca2e11865e6cfbfb708e800efb18370f5a46fd601d3755bc7f85b3a8a2", "sha256:f118a95c7480f5be0df8afeb9a11bd199aa20afab7a96bcf20409b411a3a85f0"
"sha256:ecadccc7ba52193963c0475ac9f6fa28ac01e01349a2ca48509667ef41ffd2cf",
"sha256:fb81c17e0ebe3358486cd8cc3ad78adbae58af12fc2bf2bc0bb84e8090fa5ce8"
], ],
"version": "==2.8" "version": "==2.9.2"
}, },
"deepdiff": { "deepdiff": {
"hashes": [ "hashes": [
"sha256:b3fa588d1eac7fa318ec1fb4f2004568e04cb120a1989feda8e5e7164bcbf07a", "sha256:59fc1e3e7a28dd0147b0f2b00e3e27181f0f0ef4286b251d5f214a5bcd9a9bc4",
"sha256:ed7342d3ed3c0c2058a3fb05b477c943c9959ef62223dca9baa3375718a25d87" "sha256:91360be1d9d93b1d9c13ae9c5048fa83d9cff17a88eb30afaa0d7ff2d0fee17d"
], ],
"version": "==4.2.0" "version": "==4.3.2"
}, },
"deprecated": { "deprecated": {
"hashes": [ "hashes": [
"sha256:408038ab5fdeca67554e8f6742d1521cd3cd0ee0ff9d47f29318a4f4da31c308", "sha256:0cf37d293a96805c6afd8b5fc525cb40f23a2cac9b2d066ac3bd4b04e72ceccc",
"sha256:8b6a5aa50e482d8244a62e5582b96c372e87e3a28e8b49c316e46b95c76a611d" "sha256:55b41a15bda04c6a2c0d27dd4c2b7b81ffa6348c9cad8f077ac1978c59927ab9"
], ],
"version": "==1.2.7" "version": "==1.2.9"
}, },
"fuzzywuzzy": { "fuzzywuzzy": {
"hashes": [ "hashes": [
@@ -147,16 +145,16 @@
}, },
"keyring": { "keyring": {
"hashes": [ "hashes": [
"sha256:b7bdfb1978cfdbabec63a3d389ad60242e7ffe9d739cae00760408c4f07d2c13", "sha256:3401234209015144a5d75701e71cb47239e552b0882313e9f51e8976f9e27843",
"sha256:ebce8a4acfcabbcdfdcae2fc58571cebf11f71262cca898edceef89cdc891898" "sha256:c53e0e5ccde3ad34284a40ce7976b5b3a3d6de70344c3f8ee44364cc340976ec"
], ],
"version": "==21.1.1" "version": "==21.2.1"
}, },
"ordered-set": { "ordered-set": {
"hashes": [ "hashes": [
"sha256:a7bfa858748c73b096e43db14eb23e2bc714a503f990c89fac8fab9b0ee79724" "sha256:a31008c57f9c9776b12eb8841b1f61d1e4d70dfbbe8875ccfa2403c54af3d51b"
], ],
"version": "==3.1.1" "version": "==4.0.1"
}, },
"protobuf": { "protobuf": {
"hashes": [ "hashes": [
@@ -189,10 +187,10 @@
}, },
"pychromecast": { "pychromecast": {
"hashes": [ "hashes": [
"sha256:4144319cd5aee5e4eb356110f80d945e206c1a18dd85fc4d62eb134a21e81ac0", "sha256:55e6db2716eff6a36a45092a2f547cc7609d98495ad70db4ac8d90feb4964f78",
"sha256:7ec56887951e25d11d2a5860c743a7f4fe0c8d58864f17fae24c500674f79d8d" "sha256:e59e9f85d6af04f588a22ff2381b9bd8b1cd53a691a30e698ff4266bac1a30b6"
], ],
"version": "==4.1.1" "version": "==5.0.0"
}, },
"pycparser": { "pycparser": {
"hashes": [ "hashes": [
@@ -203,9 +201,9 @@
}, },
"pygobject": { "pygobject": {
"hashes": [ "hashes": [
"sha256:b97f570e55017fcd3732164811f24ecf63983a4834f61b55b0aaf64ecefac856" "sha256:012a589aec687bfa809a1ff9f5cd775dc7f6fcec1a6bc7fe88e1002a68f8ba34"
], ],
"version": "==3.36.0" "version": "==3.36.1"
}, },
"python-dateutil": { "python-dateutil": {
"hashes": [ "hashes": [
@@ -222,25 +220,25 @@
}, },
"python-mpv": { "python-mpv": {
"hashes": [ "hashes": [
"sha256:2955f054facdf9afdbc4590919fbcb11bbc55281f1168de29a30bf7773a60502" "sha256:9daaf2866e76cb02d5ab536ef006696dc34b728d0a6d279e880a1942f6a9ba3a"
], ],
"version": "==0.4.5" "version": "==0.4.6"
}, },
"pyyaml": { "pyyaml": {
"hashes": [ "hashes": [
"sha256:059b2ee3194d718896c0ad077dd8c043e5e909d9180f387ce42012662a4946d6", "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97",
"sha256:1cf708e2ac57f3aabc87405f04b86354f66799c8e62c28c5fc5f88b5521b2dbf", "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76",
"sha256:24521fa2890642614558b492b473bee0ac1f8057a7263156b02e8b14c88ce6f5", "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2",
"sha256:4fee71aa5bc6ed9d5f116327c04273e25ae31a3020386916905767ec4fc5317e", "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648",
"sha256:70024e02197337533eef7b85b068212420f950319cc8c580261963aefc75f811", "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf",
"sha256:74782fbd4d4f87ff04159e986886931456a1894c61229be9eaf4de6f6e44b99e", "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f",
"sha256:940532b111b1952befd7db542c370887a8611660d2b9becff75d39355303d82d", "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2",
"sha256:cb1f2f5e426dc9f07a7681419fe39cee823bb74f723f36f70399123f439e9b20", "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee",
"sha256:dbbb2379c19ed6042e8f11f2a2c66d39cceb8aeace421bfc29d085d93eda3689", "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d",
"sha256:e3a057b7a64f1222b56e47bcff5e4b94c4f61faac04c7c4ecb1985e18caa3994", "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c",
"sha256:e9f45bd5b92c7974e59bcd2dcc8631a6b6cc380a904725fce7bc08872e691615" "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"
], ],
"version": "==5.3" "version": "==5.3.1"
}, },
"requests": { "requests": {
"hashes": [ "hashes": [
@@ -266,14 +264,17 @@
}, },
"sublime-music": { "sublime-music": {
"editable": true, "editable": true,
"extras": [
"keyring"
],
"path": "." "path": "."
}, },
"urllib3": { "urllib3": {
"hashes": [ "hashes": [
"sha256:2f3db8b19923a873b3e5256dc9c2dedfa883e33d87c690d9c7913e1f40673cdc", "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527",
"sha256:87716c2d2a7121198ebcb7ce7cccf6ce5e9ba539041cfbaeecfb641dc0bf6acc" "sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"
], ],
"version": "==1.25.8" "version": "==1.25.9"
}, },
"wrapt": { "wrapt": {
"hashes": [ "hashes": [
@@ -283,10 +284,10 @@
}, },
"zeroconf": { "zeroconf": {
"hashes": [ "hashes": [
"sha256:83c4f611338096cafea46509d08e26891800b75abdead43d13bb13094c459187", "sha256:51f25787c27cf7b903e6795e8763bccdaa71199f61b75af97f1bde036fa43b27",
"sha256:893a841445663e0c4c20d1111ce41484bd62d58f59d653d0485187343368ef4a" "sha256:a0cdd43ee8f00e7082f784c4226d2609070ad0b2aeb34b0154466950d2134de6"
], ],
"version": "==0.24.5" "version": "==0.26.1"
} }
}, },
"develop": { "develop": {
@@ -313,10 +314,10 @@
}, },
"certifi": { "certifi": {
"hashes": [ "hashes": [
"sha256:017c25db2a153ce562900032d5bc68e9f191e44e9a0f762f373977de9df1fbb3", "sha256:1d987a998c75633c40847cc966fcf5904906c920a7f17ef374f5aa4282abd304",
"sha256:25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f" "sha256:51fcb31174be6e6664c5f69e3e1691a2d72a1a12e90f872cbdb1567eb47b6519"
], ],
"version": "==2019.11.28" "version": "==2020.4.5.1"
}, },
"chardet": { "chardet": {
"hashes": [ "hashes": [
@@ -327,39 +328,39 @@
}, },
"coverage": { "coverage": {
"hashes": [ "hashes": [
"sha256:15cf13a6896048d6d947bf7d222f36e4809ab926894beb748fc9caa14605d9c3", "sha256:00f1d23f4336efc3b311ed0d807feb45098fc86dee1ca13b3d6768cdab187c8a",
"sha256:1daa3eceed220f9fdb80d5ff950dd95112cd27f70d004c7918ca6dfc6c47054c", "sha256:01333e1bd22c59713ba8a79f088b3955946e293114479bbfc2e37d522be03355",
"sha256:1e44a022500d944d42f94df76727ba3fc0a5c0b672c358b61067abb88caee7a0", "sha256:0cb4be7e784dcdc050fc58ef05b71aa8e89b7e6636b99967fadbdba694cf2b65",
"sha256:25dbf1110d70bab68a74b4b9d74f30e99b177cde3388e07cc7272f2168bd1477", "sha256:0e61d9803d5851849c24f78227939c701ced6704f337cad0a91e0972c51c1ee7",
"sha256:3230d1003eec018ad4a472d254991e34241e0bbd513e97a29727c7c2f637bd2a", "sha256:1601e480b9b99697a570cea7ef749e88123c04b92d84cedaa01e117436b4a0a9",
"sha256:3dbb72eaeea5763676a1a1efd9b427a048c97c39ed92e13336e726117d0b72bf", "sha256:2742c7515b9eb368718cd091bad1a1b44135cc72468c731302b3d641895b83d1",
"sha256:5012d3b8d5a500834783689a5d2292fe06ec75dc86ee1ccdad04b6f5bf231691", "sha256:2d27a3f742c98e5c6b461ee6ef7287400a1956c11421eb574d843d9ec1f772f0",
"sha256:51bc7710b13a2ae0c726f69756cf7ffd4362f4ac36546e243136187cfcc8aa73", "sha256:402e1744733df483b93abbf209283898e9f0d67470707e3c7516d84f48524f55",
"sha256:527b4f316e6bf7755082a783726da20671a0cc388b786a64417780b90565b987", "sha256:5c542d1e62eece33c306d66fe0a5c4f7f7b3c08fecc46ead86d7916684b36d6c",
"sha256:722e4557c8039aad9592c6a4213db75da08c2cd9945320220634f637251c3894", "sha256:5f2294dbf7875b991c381e3d5af2bcc3494d836affa52b809c91697449d0eda6",
"sha256:76e2057e8ffba5472fd28a3a010431fd9e928885ff480cb278877c6e9943cc2e", "sha256:6402bd2fdedabbdb63a316308142597534ea8e1895f4e7d8bf7476c5e8751fef",
"sha256:77afca04240c40450c331fa796b3eab6f1e15c5ecf8bf2b8bee9706cd5452fef", "sha256:66460ab1599d3cf894bb6baee8c684788819b71a5dc1e8fa2ecc152e5d752019",
"sha256:7afad9835e7a651d3551eab18cbc0fdb888f0a6136169fbef0662d9cdc9987cf", "sha256:782caea581a6e9ff75eccda79287daefd1d2631cc09d642b6ee2d6da21fc0a4e",
"sha256:9bea19ac2f08672636350f203db89382121c9c2ade85d945953ef3c8cf9d2a68", "sha256:79a3cfd6346ce6c13145731d39db47b7a7b859c0272f02cdb89a3bdcbae233a0",
"sha256:a8b8ac7876bc3598e43e2603f772d2353d9931709345ad6c1149009fd1bc81b8", "sha256:7a5bdad4edec57b5fb8dae7d3ee58622d626fd3a0be0dfceda162a7035885ecf",
"sha256:b0840b45187699affd4c6588286d429cd79a99d509fe3de0f209594669bb0954", "sha256:8fa0cbc7ecad630e5b0f4f35b0f6ad419246b02bc750de7ac66db92667996d24",
"sha256:b26aaf69713e5674efbde4d728fb7124e429c9466aeaf5f4a7e9e699b12c9fe2", "sha256:a027ef0492ede1e03a8054e3c37b8def89a1e3c471482e9f046906ba4f2aafd2",
"sha256:b63dd43f455ba878e5e9f80ba4f748c0a2156dde6e0e6e690310e24d6e8caf40", "sha256:a3f3654d5734a3ece152636aad89f58afc9213c6520062db3978239db122f03c",
"sha256:be18f4ae5a9e46edae3f329de2191747966a34a3d93046dbdf897319923923bc", "sha256:a82b92b04a23d3c8a581fc049228bafde988abacba397d57ce95fe95e0338ab4",
"sha256:c312e57847db2526bc92b9bfa78266bfbaabac3fdcd751df4d062cd4c23e46dc", "sha256:acf3763ed01af8410fc36afea23707d4ea58ba7e86a8ee915dfb9ceff9ef69d0",
"sha256:c60097190fe9dc2b329a0eb03393e2e0829156a589bd732e70794c0dd804258e", "sha256:adeb4c5b608574a3d647011af36f7586811a2c1197c861aedb548dd2453b41cd",
"sha256:c62a2143e1313944bf4a5ab34fd3b4be15367a02e9478b0ce800cb510e3bbb9d", "sha256:b83835506dfc185a319031cf853fa4bb1b3974b1f913f5bb1a0f3d98bdcded04",
"sha256:cc1109f54a14d940b8512ee9f1c3975c181bbb200306c6d8b87d93376538782f", "sha256:bb28a7245de68bf29f6fb199545d072d1036a1917dca17a1e75bbb919e14ee8e",
"sha256:cd60f507c125ac0ad83f05803063bed27e50fa903b9c2cfee3f8a6867ca600fc", "sha256:bf9cb9a9fd8891e7efd2d44deb24b86d647394b9705b744ff6f8261e6f29a730",
"sha256:d513cc3db248e566e07a0da99c230aca3556d9b09ed02f420664e2da97eac301", "sha256:c317eaf5ff46a34305b202e73404f55f7389ef834b8dbf4da09b9b9b37f76dd2",
"sha256:d649dc0bcace6fcdb446ae02b98798a856593b19b637c1b9af8edadf2b150bea", "sha256:dbe8c6ae7534b5b024296464f387d57c13caa942f6d8e6e0346f27e509f0f768",
"sha256:d7008a6796095a79544f4da1ee49418901961c97ca9e9d44904205ff7d6aa8cb", "sha256:de807ae933cfb7f0c7d9d981a053772452217df2bf38e7e6267c9cbf9545a796",
"sha256:da93027835164b8223e8e5af2cf902a4c80ed93cb0909417234f4a9df3bcd9af", "sha256:dead2ddede4c7ba6cb3a721870f5141c97dc7d85a079edb4bd8d88c3ad5b20c7",
"sha256:e69215621707119c6baf99bda014a45b999d37602cb7043d943c76a59b05bf52", "sha256:dec5202bfe6f672d4511086e125db035a52b00f1648d6407cc8e526912c0353a",
"sha256:ea9525e0fef2de9208250d6c5aeeee0138921057cd67fcef90fbed49c4d62d37", "sha256:e1ea316102ea1e1770724db01998d1603ed921c54a86a2efcb03428d5417e489",
"sha256:fca1669d464f0c9831fd10be2eef6b86f5ebd76c724d1e0706ebdff86bb4adf0" "sha256:f90bfc4ad18450c80b024036eaf91e4a246ae287701aaa88eaebebf150868052"
], ],
"version": "==5.0.3" "version": "==5.1"
}, },
"docutils": { "docutils": {
"hashes": [ "hashes": [
@@ -386,11 +387,11 @@
}, },
"flake8-annotations": { "flake8-annotations": {
"hashes": [ "hashes": [
"sha256:a38b44d01abd480586a92a02a2b0a36231ec42dcc5e114de78fa5db016d8d3f9", "sha256:9091d920406a7ff10e401e0dd1baa396d1d7d2e3d101a9beecf815f5894ad554",
"sha256:d5b0e8704e4e7728b352fa1464e23539ff2341ba11cc153b536fa2cf921ee659" "sha256:f59fdceb8c8f380a20aed20e1ba8a57bde05935958166c52be2249f113f7ab75"
], ],
"index": "pypi", "index": "pypi",
"version": "==2.0.1" "version": "==2.1.0"
}, },
"flake8-comprehensions": { "flake8-comprehensions": {
"hashes": [ "hashes": [
@@ -424,11 +425,11 @@
}, },
"graphviz": { "graphviz": {
"hashes": [ "hashes": [
"sha256:241fb099e32b8e8c2acca747211c8237e40c0b89f24b1622860075d59f4c4b25", "sha256:cb0e878f90378489f17aab140b68e64e44b79e4cb59a530c8863d84bf2e2e5f5",
"sha256:60acbeee346e8c14555821eab57dbf68a169e6c10bce40e83c1bf44f63a62a01" "sha256:e104ba036c8aef84320ec80560e544cd3cad68c9f90394b4e2b87bc44ab09791"
], ],
"index": "pypi", "index": "pypi",
"version": "==0.13.2" "version": "==0.14"
}, },
"idna": { "idna": {
"hashes": [ "hashes": [
@@ -446,18 +447,18 @@
}, },
"jedi": { "jedi": {
"hashes": [ "hashes": [
"sha256:b4f4052551025c6b0b0b193b29a6ff7bdb74c52450631206c262aef9f7159ad2", "sha256:cd60c93b71944d628ccac47df9a60fec53150de53d42dc10a7fc4b5ba6aae798",
"sha256:d5c871cb9360b414f981e7072c52c33258d598305280fef91c6cae34739d65d5" "sha256:df40c97641cb943661d2db4c33c2e1ff75d491189423249e989bcea4464f3030"
], ],
"index": "pypi", "index": "pypi",
"version": "==0.16.0" "version": "==0.17.0"
}, },
"jinja2": { "jinja2": {
"hashes": [ "hashes": [
"sha256:93187ffbc7808079673ef52771baa950426fd664d3aad1d0fa3e95644360e250", "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0",
"sha256:b0eaf100007721b5c16c1fc1eecb87409464edc10469ddc9a22a27a99123be49" "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"
], ],
"version": "==2.11.1" "version": "==2.11.2"
}, },
"lxml": { "lxml": {
"hashes": [ "hashes": [
@@ -546,23 +547,23 @@
}, },
"mypy": { "mypy": {
"hashes": [ "hashes": [
"sha256:0a9a45157e532da06fe56adcfef8a74629566b607fa2c1ac0122d1ff995c748a", "sha256:15b948e1302682e3682f11f50208b726a246ab4e6c1b39f9264a8796bb416aa2",
"sha256:2c35cae79ceb20d47facfad51f952df16c2ae9f45db6cb38405a3da1cf8fc0a7", "sha256:219a3116ecd015f8dca7b5d2c366c973509dfb9a8fc97ef044a36e3da66144a1",
"sha256:4b9365ade157794cef9685791032521233729cb00ce76b0ddc78749abea463d2", "sha256:3b1fc683fb204c6b4403a1ef23f0b1fac8e4477091585e0c8c54cbdf7d7bb164",
"sha256:53ea810ae3f83f9c9b452582261ea859828a9ed666f2e1ca840300b69322c474", "sha256:3beff56b453b6ef94ecb2996bea101a08f1f8a9771d3cbf4988a61e4d9973761",
"sha256:634aef60b4ff0f650d3e59d4374626ca6153fcaff96ec075b215b568e6ee3cb0", "sha256:7687f6455ec3ed7649d1ae574136835a4272b65b3ddcf01ab8704ac65616c5ce",
"sha256:7e396ce53cacd5596ff6d191b47ab0ea18f8e0ec04e15d69728d530e86d4c217", "sha256:7ec45a70d40ede1ec7ad7f95b3c94c9cf4c186a32f6bacb1795b60abd2f9ef27",
"sha256:7eadc91af8270455e0d73565b8964da1642fe226665dd5c9560067cd64d56749", "sha256:86c857510a9b7c3104cf4cde1568f4921762c8f9842e987bc03ed4f160925754",
"sha256:7f672d02fffcbace4db2b05369142e0506cdcde20cea0e07c7c2171c4fd11dd6", "sha256:8a627507ef9b307b46a1fea9513d5c98680ba09591253082b4c48697ba05a4ae",
"sha256:85baab8d74ec601e86134afe2bcccd87820f79d2f8d5798c889507d1088287bf", "sha256:8dfb69fbf9f3aeed18afffb15e319ca7f8da9642336348ddd6cab2713ddcf8f9",
"sha256:87c556fb85d709dacd4b4cb6167eecc5bbb4f0a9864b69136a0d4640fdc76a36", "sha256:a34b577cdf6313bf24755f7a0e3f3c326d5c1f4fe7422d1d06498eb25ad0c600",
"sha256:a6bd44efee4dc8c3324c13785a9dc3519b3ee3a92cada42d2b57762b7053b49b", "sha256:a8ffcd53cb5dfc131850851cc09f1c44689c2812d0beb954d8138d4f5fc17f65",
"sha256:c6d27bd20c3ba60d5b02f20bd28e20091d6286a699174dfad515636cb09b5a72", "sha256:b90928f2d9eb2f33162405f32dde9f6dcead63a0971ca8a1b50eb4ca3e35ceb8",
"sha256:e2bb577d10d09a2d8822a042a23b8d62bc3b269667c9eb8e60a6edfa000211b1", "sha256:c56ffe22faa2e51054c5f7a3bc70a370939c2ed4de308c690e7949230c995913",
"sha256:f97a605d7c8bc2c6d1172c2f0d5a65b24142e11a58de689046e62c2d632ca8c1" "sha256:f91c7ae919bbc3f96cd5e5b2e786b2b108343d1d7972ea130f7de27fdd547cf3"
], ],
"index": "pypi", "index": "pypi",
"version": "==0.761" "version": "==0.770"
}, },
"mypy-extensions": { "mypy-extensions": {
"hashes": [ "hashes": [
@@ -580,10 +581,10 @@
}, },
"parso": { "parso": {
"hashes": [ "hashes": [
"sha256:0c5659e0c6eba20636f99a04f469798dca8da279645ce5c387315b2c23912157", "sha256:158c140fc04112dc45bca311633ae5033c2c2a7b732fa33d0955bad8152a8dd0",
"sha256:8515fc12cfca6ee3aa59138741fc5624d62340c97e401c74875769948d4f2995" "sha256:908e9fae2144a076d72ae4e25539143d40b8e3eafbaeae03c1bfe226f4cdf12c"
], ],
"version": "==0.6.2" "version": "==0.7.0"
}, },
"pluggy": { "pluggy": {
"hashes": [ "hashes": [
@@ -615,26 +616,25 @@
}, },
"pygments": { "pygments": {
"hashes": [ "hashes": [
"sha256:0a3a2265e1efb0defa722d1f429730dc9df975adc3c60ac7d2b432bdf03c041d", "sha256:647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44",
"sha256:5ded2fa9094fd7dfeb3da92636409fd702a0d07d606283504d7ee04401cee5cb", "sha256:ff7a40b4860b727ab48fad6360eb351cc1b33cbf9b15a0f689ca5353e9463324"
"sha256:7320919084e6dac8f4540638a46447a3bd730fca172afc17d2c03eed22cf4f51"
], ],
"version": "==2.0.2" "version": "==2.6.1"
}, },
"pyparsing": { "pyparsing": {
"hashes": [ "hashes": [
"sha256:4c830582a84fb022400b85429791bc551f1f4871c33f23e44f353119e92f969f", "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1",
"sha256:c342dccb5250c08d45fd6f8b4a559613ca603b57498511740e65cd11a2e7dcec" "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"
], ],
"version": "==2.4.6" "version": "==2.4.7"
}, },
"pytest": { "pytest": {
"hashes": [ "hashes": [
"sha256:0d5fe9189a148acc3c3eb2ac8e1ac0742cb7618c084f3d228baaec0c254b318d", "sha256:0e5b30f5cb04e887b91b1ee519fa3d89049595f428c1db76e73bd7f17b09b172",
"sha256:ff615c761e25eb25df19edddc0b970302d2a9091fbce0e7213298d85fb61fef6" "sha256:84dde37075b8805f3d1f392cc47e38a0e59518fb46a431cfdaf7cf1ce805f970"
], ],
"index": "pypi", "index": "pypi",
"version": "==5.3.5" "version": "==5.4.1"
}, },
"pytest-cov": { "pytest-cov": {
"hashes": [ "hashes": [
@@ -646,10 +646,10 @@
}, },
"pytz": { "pytz": {
"hashes": [ "hashes": [
"sha256:1c557d7d0e871de1f5ccd5833f60fb2550652da6be2693c1e02300743d21500d", "sha256:a494d53b6d39c3c6e44c3bec237336e14305e4f29bbf800b599253057fbb79ed",
"sha256:b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be" "sha256:c35965d010ce31b23eeb663ed3cc8c906275d6be1a34393a1d73a41febf4a048"
], ],
"version": "==2019.3" "version": "==2020.1"
}, },
"requests": { "requests": {
"hashes": [ "hashes": [
@@ -660,20 +660,17 @@
}, },
"rope": { "rope": {
"hashes": [ "hashes": [
"sha256:52423a7eebb5306a6d63bdc91a7c657db51ac9babfb8341c9a1440831ecf3203", "sha256:658ad6705f43dcf3d6df379da9486529cf30e02d9ea14c5682aa80eb33b649e1"
"sha256:ae1fa2fd56f64f4cc9be46493ce54bed0dd12dee03980c61a4393d89d84029ad",
"sha256:d2830142c2e046f5fc26a022fe680675b6f48f81c7fc1f03a950706e746e9dfe"
], ],
"index": "pypi", "index": "pypi",
"version": "==0.16.0" "version": "==0.17.0"
}, },
"rst2html5": { "rst2html5": {
"hashes": [ "hashes": [
"sha256:18cdf614d29ab895b38626872210df75bd0ba2eaf77b893d1c85009f0b92bc7c", "sha256:8e64e80c52d0383aa04f2701a7627c2f2a09d59c61a3dc3555d845333bc31648"
"sha256:ded369fdb8b0d952adc5862f682a7937405a1be99489368f13f8f9afeb1afdfc"
], ],
"index": "pypi", "index": "pypi",
"version": "==1.10.2" "version": "==1.10.6"
}, },
"six": { "six": {
"hashes": [ "hashes": [
@@ -691,11 +688,11 @@
}, },
"sphinx": { "sphinx": {
"hashes": [ "hashes": [
"sha256:b4c750d546ab6d7e05bdff6ac24db8ae3e8b8253a3569b754e445110a0a12b66", "sha256:62edfd92d955b868d6c124c0942eba966d54b5f3dcb4ded39e65f74abac3f572",
"sha256:fc312670b56cb54920d6cc2ced455a22a547910de10b3142276495ced49231cb" "sha256:f5505d74cf9592f3b997380f9bdb2d2d0320ed74dd69691e3ee0644b956b8d83"
], ],
"index": "pypi", "index": "pypi",
"version": "==2.4.4" "version": "==3.0.3"
}, },
"sphinx-autodoc-typehints": { "sphinx-autodoc-typehints": {
"hashes": [ "hashes": [
@@ -790,33 +787,33 @@
}, },
"typing-extensions": { "typing-extensions": {
"hashes": [ "hashes": [
"sha256:091ecc894d5e908ac75209f10d5b4f118fbdb2eb1ede6a63544054bb1edb41f2", "sha256:6e95524d8a547a91e08f404ae485bbb71962de46967e1b71a0cb89af24e761c5",
"sha256:910f4656f54de5993ad9304959ce9bb903f90aadc7c67a0bef07e678014e892d", "sha256:79ee589a3caca649a9bfd2a8de4709837400dfa00b6cc81962a1e6a1815969ae",
"sha256:cf8b63fedea4d89bab840ecbb93e75578af28f76f66c35889bd7065f5af88575" "sha256:f8d2bd89d25bc39dabe7d23df520442fa1d8969b82544370e03d88b5a591c392"
], ],
"version": "==3.7.4.1" "version": "==3.7.4.2"
}, },
"urllib3": { "urllib3": {
"hashes": [ "hashes": [
"sha256:2f3db8b19923a873b3e5256dc9c2dedfa883e33d87c690d9c7913e1f40673cdc", "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527",
"sha256:87716c2d2a7121198ebcb7ce7cccf6ce5e9ba539041cfbaeecfb641dc0bf6acc" "sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"
], ],
"version": "==1.25.8" "version": "==1.25.9"
}, },
"wcwidth": { "wcwidth": {
"hashes": [ "hashes": [
"sha256:8fd29383f539be45b20bd4df0dc29c20ba48654a41e661925e612311e9f3c603", "sha256:cafe2186b3c009a04067022ce1dcd79cb38d8d65ee4f4791b8888d6599d1bbe1",
"sha256:f28b3e8a6483e5d49e7f8949ac1a78314e740333ae305b4ba5defd3e74fb37a8" "sha256:ee73862862a156bf77ff92b09034fc4825dd3af9cf81bc5b360668d425f3c5f1"
], ],
"version": "==0.1.8" "version": "==0.1.9"
}, },
"yapf": { "yapf": {
"hashes": [ "hashes": [
"sha256:712e23c468506bf12cadd10169f852572ecc61b266258422d45aaf4ad7ef43de", "sha256:3000abee4c28daebad55da6c85f3cd07b8062ce48e2e9943c8da1b9667d48427",
"sha256:cad8a272c6001b3401de3278238fdc54997b6c2e56baa751788915f879a52fca" "sha256:3abf61ba67cf603069710d30acbc88cfe565d907e16ad81429ae90ce9651e0c9"
], ],
"index": "pypi", "index": "pypi",
"version": "==0.29.0" "version": "==0.30.0"
} }
} }
} }

View File

@@ -49,27 +49,31 @@ Install the |AUR Package|_. Example using ``yay``::
.. |AUR Package| replace:: ``sublime-music`` package .. |AUR Package| replace:: ``sublime-music`` package
.. _AUR Package: https://aur.archlinux.org/packages/sublime-music/ .. _AUR Package: https://aur.archlinux.org/packages/sublime-music/
.. Uncomment when Flatpak support actually works. **Via Flatpak**:
.. **Via Flatpak**:
.. In the future, you will be able to install via Flathub. For now, if you want to
.. In the future, you will be able to install via Flathub. For now, if you want to try the Flatpak, you will have to install it manually by visiting the Releases_
.. try the Flatpak, you will have to install it manually by visiting the Releases_ page and downloading the ``.flatpak`` file from there.
.. page and downloading the ``.flatpak`` file from there.
.. Then, you can install Sublime Music with::
.. Then, you can install Sublime Music with::
.. sudo flatpak install sublime-music.flatpak
.. sudo flatpak install sublime-music.flatpak
.. and run it by executing::
.. and run it by executing::
.. flatpak run com.sumnerevans.SublimeMusic
.. flatpak run com.sumnerevans.SublimeMusic
.. .. _Releases: https://gitlab.com/sumner/sublime-music/-/releases
.. .. _Releases: https://gitlab.com/sumner/sublime-music/-/releases
**Via PyPi**:: **Via PyPi**::
pip install sublime-music pip install sublime-music
Or if you want to store your passwords in the system keyring instead of in
plain-text::
pip install sublime-music[keyring]
.. toctree:: .. toctree::
:numbered: :numbered:
:maxdepth: 1 :maxdepth: 1

View File

@@ -1,9 +1,7 @@
bottle==0.12.17 bottle==0.12.17
cffi==1.13.2
deepdiff==4.0.7 deepdiff==4.0.7
Deprecated==1.2.6 Deprecated==1.2.6
fuzzywuzzy==0.17.0 fuzzywuzzy==0.17.0
keyring==19.2.0
PyChromecast==3.2.3 PyChromecast==3.2.3
python-dateutil==2.8.0 python-dateutil==2.8.0
python-Levenshtein==0.12.0 python-Levenshtein==0.12.0

View File

@@ -2,13 +2,15 @@
set -xe set -xe
REPO=${REPO:-/repo}
rm -rf flatpak-builder-tools rm -rf flatpak-builder-tools
git clone https://github.com/flatpak/flatpak-builder-tools.git git clone https://github.com/flatpak/flatpak-builder-tools.git
python3 ./flatpak-builder-tools/pip/flatpak-pip-generator --requirements-file=flatpak-requirements.txt --output pypi-dependencies python3 ./flatpak-builder-tools/pip/flatpak-pip-generator --requirements-file=flatpak-requirements.txt --output pypi-dependencies
mkdir -p /repo mkdir -p $REPO
flatpak-builder --force-clean --repo=/repo flatpak_build_dir com.sumnerevans.SublimeMusic.json flatpak-builder --force-clean --repo=$REPO flatpak_build_dir com.sumnerevans.SublimeMusic.json
flatpak build-bundle /repo sublime-music.flatpak com.sumnerevans.SublimeMusic flatpak build-bundle $REPO sublime-music.flatpak com.sumnerevans.SublimeMusic

View File

@@ -59,7 +59,6 @@ setup(
'deepdiff', 'deepdiff',
'Deprecated', 'Deprecated',
'fuzzywuzzy', 'fuzzywuzzy',
'keyring',
'osxmmkeys ; sys_platform=="darwin"', 'osxmmkeys ; sys_platform=="darwin"',
'pychromecast', 'pychromecast',
'PyGObject', 'PyGObject',
@@ -69,6 +68,10 @@ setup(
'pyyaml', 'pyyaml',
'requests', 'requests',
], ],
extras_require={
"keyring": ["keyring"],
},
# To provide executable scripts, use entry points in preference to the # To provide executable scripts, use entry points in preference to the
# "scripts" keyword. Entry points provide cross-platform support and # "scripts" keyword. Entry points provide cross-platform support and

View File

@@ -486,7 +486,7 @@ class CacheManager(metaclass=Singleton):
# Move the file to its cache download location. # Move the file to its cache download location.
os.makedirs(abs_path.parent, exist_ok=True) os.makedirs(abs_path.parent, exist_ok=True)
if download_path.exists(): if download_path.exists():
shutil.move(download_path, abs_path) shutil.move(str(download_path), abs_path)
logging.info(f'{abs_path} downloaded. Returning.') logging.info(f'{abs_path} downloaded. Returning.')
return abs_path_str return abs_path_str

View File

@@ -3,7 +3,12 @@ import os
from enum import Enum from enum import Enum
from typing import Any, Dict, List, Optional from typing import Any, Dict, List, Optional
import keyring try:
import keyring
has_keyring = True
except ImportError:
has_keyring = False
class ReplayGainType(Enum): class ReplayGainType(Enum):
@@ -56,19 +61,22 @@ class ServerConfiguration:
# Try to save the password in the keyring, but if we can't, then save # Try to save the password in the keyring, but if we can't, then save
# it in the config JSON. # it in the config JSON.
try: if not has_keyring:
keyring.set_password(
'com.sumnerevans.SublimeMusic',
f'{self.username}@{self.server_address}',
password,
)
except Exception:
self._password = password self._password = password
else:
try:
keyring.set_password(
'com.sumnerevans.SublimeMusic',
f'{self.username}@{self.server_address}',
password,
)
except Exception:
self._password = password
def migrate(self): def migrate(self):
# Try and migrate to use the system keyring, but if it fails, then we # Try and migrate to use the system keyring, but if it fails, then we
# don't care. # don't care.
if self._password: if self._password and has_keyring:
try: try:
keyring.set_password( keyring.set_password(
'com.sumnerevans.SublimeMusic', 'com.sumnerevans.SublimeMusic',
@@ -81,6 +89,9 @@ class ServerConfiguration:
@property @property
def password(self) -> str: def password(self) -> str:
if not has_keyring:
return self._password
try: try:
return keyring.get_password( return keyring.get_password(
'com.sumnerevans.SublimeMusic', 'com.sumnerevans.SublimeMusic',