From a5990eb39c0311de84f2626d900930802ea1bad2 Mon Sep 17 00:00:00 2001 From: kuba Date: Sat, 24 Aug 2024 19:03:51 +0200 Subject: [PATCH 1/6] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit a694bb91bb170055ffafb8d81496865863876e6e Merge: e4e32014 cefef14b Author: kuba Date: Sat Aug 24 19:01:45 2024 +0200 Merge branch 'dev' commit e4e3201457d6c68620bc208633973f8d3cd2179e Author: kuba Date: Sat Aug 24 18:42:54 2024 +0200 v4.2.6 (#2141) update min python version for tests update docs Co-Authored-By: kuba Co-Authored-By: Jayden <23619946+Silverarmor@users.noreply.github.com> Co-Authored-By: Robert Schütz Co-Authored-By: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-Authored-By: Alexis Raphaeloff Co-Authored-By: Randy Blancett Co-Authored-By: darcy Co-Authored-By: Karan Bheda Co-Authored-By: Jeremy Cutler Co-Authored-By: Soiu Cristian-Ionuț <58639803+xKristee29@users.noreply.github.com> Co-Authored-By: Peter S <72932714+zigzag1001@users.noreply.github.com> Co-Authored-By: Alan <96998756+j3bx@users.noreply.github.com> --- docs/usage.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index 577781eac..9d05b80b3 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -260,8 +260,8 @@ If you don't want config to load automatically change `load_config` option in co ```json { - "client_id": "5f573c9620494bae87890c0f08a60293", - "client_secret": "212476d9b0f3472eaa762d90b19b0ba8", + "client_id": "f8a606e5583643beaa27ce62c48e3fc1", + "client_secret": "f6f4c8f73f0649939286cf417c811607", "auth_token": null, "user_auth": false, "headless": false, From e26d626804d3da44db8b53e6652e2e83b28d79dc Mon Sep 17 00:00:00 2001 From: Peyton Creery <44987569+phcreery@users.noreply.github.com> Date: Sun, 25 Aug 2024 10:01:21 -0500 Subject: [PATCH 2/6] fix #2164 (#2165) --- spotdl/console/web.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spotdl/console/web.py b/spotdl/console/web.py index 30eb8d5b0..8b846c50c 100644 --- a/spotdl/console/web.py +++ b/spotdl/console/web.py @@ -80,7 +80,7 @@ def web(web_settings: WebOptions, downloader_settings: DownloaderOptions): gui_repo, output_dir=str(web_app_dir), ) - web_app_dir = web_app_dir / "/dist" + web_app_dir = os.path.join(web_app_dir, "dist") elif web_settings["web_gui_location"]: web_app_dir = Path(web_settings["web_gui_location"]).resolve() logger.info("Using custom web app location: %s", web_app_dir) @@ -88,7 +88,7 @@ def web(web_settings: WebOptions, downloader_settings: DownloaderOptions): logger.info( "Using cached web app. To update use the `--force-update-gui` flag." ) - web_app_dir = web_app_dir / "/dist" + web_app_dir = os.path.join(web_app_dir, "dist") app_state.api = FastAPI( title="spotDL", From 1cd4693f82eedf086e586d3e5382912ebd5e1223 Mon Sep 17 00:00:00 2001 From: kuba Date: Mon, 26 Aug 2024 12:10:32 +0200 Subject: [PATCH 3/6] hopefully fixed arm64 build --- .github/workflows/python-publish.yml | 5 +- poetry.lock | 73 +++++++++++++++------------- pyproject.toml | 2 +- 3 files changed, 43 insertions(+), 37 deletions(-) diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index 62988c1b3..200177853 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -104,8 +104,9 @@ jobs: run: | cd /spotdl apt update - apt install python3 python3-pip -y - pip install poetry + apt install python3-full python3-pip pipx -y + pipx ensurepath + pipx install poetry poetry install rm -rf dist/ mkdir dist/ diff --git a/poetry.lock b/poetry.lock index 6eeccf016..e91fde211 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1334,38 +1334,38 @@ files = [ [[package]] name = "mypy" -version = "1.11.1" +version = "1.11.2" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.11.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a32fc80b63de4b5b3e65f4be82b4cfa362a46702672aa6a0f443b4689af7008c"}, - {file = "mypy-1.11.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c1952f5ea8a5a959b05ed5f16452fddadbaae48b5d39235ab4c3fc444d5fd411"}, - {file = "mypy-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1e30dc3bfa4e157e53c1d17a0dad20f89dc433393e7702b813c10e200843b03"}, - {file = "mypy-1.11.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2c63350af88f43a66d3dfeeeb8d77af34a4f07d760b9eb3a8697f0386c7590b4"}, - {file = "mypy-1.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:a831671bad47186603872a3abc19634f3011d7f83b083762c942442d51c58d58"}, - {file = "mypy-1.11.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7b6343d338390bb946d449677726edf60102a1c96079b4f002dedff375953fc5"}, - {file = "mypy-1.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4fe9f4e5e521b458d8feb52547f4bade7ef8c93238dfb5bbc790d9ff2d770ca"}, - {file = "mypy-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:886c9dbecc87b9516eff294541bf7f3655722bf22bb898ee06985cd7269898de"}, - {file = "mypy-1.11.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fca4a60e1dd9fd0193ae0067eaeeb962f2d79e0d9f0f66223a0682f26ffcc809"}, - {file = "mypy-1.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:0bd53faf56de9643336aeea1c925012837432b5faf1701ccca7fde70166ccf72"}, - {file = "mypy-1.11.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f39918a50f74dc5969807dcfaecafa804fa7f90c9d60506835036cc1bc891dc8"}, - {file = "mypy-1.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0bc71d1fb27a428139dd78621953effe0d208aed9857cb08d002280b0422003a"}, - {file = "mypy-1.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b868d3bcff720dd7217c383474008ddabaf048fad8d78ed948bb4b624870a417"}, - {file = "mypy-1.11.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a707ec1527ffcdd1c784d0924bf5cb15cd7f22683b919668a04d2b9c34549d2e"}, - {file = "mypy-1.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:64f4a90e3ea07f590c5bcf9029035cf0efeae5ba8be511a8caada1a4893f5525"}, - {file = "mypy-1.11.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:749fd3213916f1751fff995fccf20c6195cae941dc968f3aaadf9bb4e430e5a2"}, - {file = "mypy-1.11.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b639dce63a0b19085213ec5fdd8cffd1d81988f47a2dec7100e93564f3e8fb3b"}, - {file = "mypy-1.11.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c956b49c5d865394d62941b109728c5c596a415e9c5b2be663dd26a1ff07bc0"}, - {file = "mypy-1.11.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45df906e8b6804ef4b666af29a87ad9f5921aad091c79cc38e12198e220beabd"}, - {file = "mypy-1.11.1-cp38-cp38-win_amd64.whl", hash = "sha256:d44be7551689d9d47b7abc27c71257adfdb53f03880841a5db15ddb22dc63edb"}, - {file = "mypy-1.11.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2684d3f693073ab89d76da8e3921883019ea8a3ec20fa5d8ecca6a2db4c54bbe"}, - {file = "mypy-1.11.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:79c07eb282cb457473add5052b63925e5cc97dfab9812ee65a7c7ab5e3cb551c"}, - {file = "mypy-1.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11965c2f571ded6239977b14deebd3f4c3abd9a92398712d6da3a772974fad69"}, - {file = "mypy-1.11.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a2b43895a0f8154df6519706d9bca8280cda52d3d9d1514b2d9c3e26792a0b74"}, - {file = "mypy-1.11.1-cp39-cp39-win_amd64.whl", hash = "sha256:1a81cf05975fd61aec5ae16501a091cfb9f605dc3e3c878c0da32f250b74760b"}, - {file = "mypy-1.11.1-py3-none-any.whl", hash = "sha256:0624bdb940255d2dd24e829d99a13cfeb72e4e9031f9492148f410ed30bcab54"}, - {file = "mypy-1.11.1.tar.gz", hash = "sha256:f404a0b069709f18bbdb702eb3dcfe51910602995de00bd39cea3050b5772d08"}, + {file = "mypy-1.11.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d42a6dd818ffce7be66cce644f1dff482f1d97c53ca70908dff0b9ddc120b77a"}, + {file = "mypy-1.11.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:801780c56d1cdb896eacd5619a83e427ce436d86a3bdf9112527f24a66618fef"}, + {file = "mypy-1.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41ea707d036a5307ac674ea172875f40c9d55c5394f888b168033177fce47383"}, + {file = "mypy-1.11.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6e658bd2d20565ea86da7d91331b0eed6d2eee22dc031579e6297f3e12c758c8"}, + {file = "mypy-1.11.2-cp310-cp310-win_amd64.whl", hash = "sha256:478db5f5036817fe45adb7332d927daa62417159d49783041338921dcf646fc7"}, + {file = "mypy-1.11.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75746e06d5fa1e91bfd5432448d00d34593b52e7e91a187d981d08d1f33d4385"}, + {file = "mypy-1.11.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a976775ab2256aadc6add633d44f100a2517d2388906ec4f13231fafbb0eccca"}, + {file = "mypy-1.11.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd953f221ac1379050a8a646585a29574488974f79d8082cedef62744f0a0104"}, + {file = "mypy-1.11.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:57555a7715c0a34421013144a33d280e73c08df70f3a18a552938587ce9274f4"}, + {file = "mypy-1.11.2-cp311-cp311-win_amd64.whl", hash = "sha256:36383a4fcbad95f2657642a07ba22ff797de26277158f1cc7bd234821468b1b6"}, + {file = "mypy-1.11.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e8960dbbbf36906c5c0b7f4fbf2f0c7ffb20f4898e6a879fcf56a41a08b0d318"}, + {file = "mypy-1.11.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:06d26c277962f3fb50e13044674aa10553981ae514288cb7d0a738f495550b36"}, + {file = "mypy-1.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e7184632d89d677973a14d00ae4d03214c8bc301ceefcdaf5c474866814c987"}, + {file = "mypy-1.11.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3a66169b92452f72117e2da3a576087025449018afc2d8e9bfe5ffab865709ca"}, + {file = "mypy-1.11.2-cp312-cp312-win_amd64.whl", hash = "sha256:969ea3ef09617aff826885a22ece0ddef69d95852cdad2f60c8bb06bf1f71f70"}, + {file = "mypy-1.11.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:37c7fa6121c1cdfcaac97ce3d3b5588e847aa79b580c1e922bb5d5d2902df19b"}, + {file = "mypy-1.11.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4a8a53bc3ffbd161b5b2a4fff2f0f1e23a33b0168f1c0778ec70e1a3d66deb86"}, + {file = "mypy-1.11.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ff93107f01968ed834f4256bc1fc4475e2fecf6c661260066a985b52741ddce"}, + {file = "mypy-1.11.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:edb91dded4df17eae4537668b23f0ff6baf3707683734b6a818d5b9d0c0c31a1"}, + {file = "mypy-1.11.2-cp38-cp38-win_amd64.whl", hash = "sha256:ee23de8530d99b6db0573c4ef4bd8f39a2a6f9b60655bf7a1357e585a3486f2b"}, + {file = "mypy-1.11.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:801ca29f43d5acce85f8e999b1e431fb479cb02d0e11deb7d2abb56bdaf24fd6"}, + {file = "mypy-1.11.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:af8d155170fcf87a2afb55b35dc1a0ac21df4431e7d96717621962e4b9192e70"}, + {file = "mypy-1.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7821776e5c4286b6a13138cc935e2e9b6fde05e081bdebf5cdb2bb97c9df81d"}, + {file = "mypy-1.11.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:539c570477a96a4e6fb718b8d5c3e0c0eba1f485df13f86d2970c91f0673148d"}, + {file = "mypy-1.11.2-cp39-cp39-win_amd64.whl", hash = "sha256:3f14cd3d386ac4d05c5a39a51b84387403dadbd936e17cb35882134d4f8f0d24"}, + {file = "mypy-1.11.2-py3-none-any.whl", hash = "sha256:b499bc07dbdcd3de92b0a8b29fdf592c111276f6a12fe29c30f6c417dd546d12"}, + {file = "mypy-1.11.2.tar.gz", hash = "sha256:7f9993ad3e0ffdc95c2a14b66dee63729f021968bff8ad911867579c65d13a79"}, ] [package.dependencies] @@ -1403,14 +1403,19 @@ files = [ [[package]] name = "paginate" -version = "0.5.6" +version = "0.5.7" description = "Divides large result sets into pages for easier browsing" optional = false python-versions = "*" files = [ - {file = "paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d"}, + {file = "paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591"}, + {file = "paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945"}, ] +[package.extras] +dev = ["pytest", "tox"] +lint = ["black"] + [[package]] name = "pathspec" version = "0.12.1" @@ -2999,13 +3004,13 @@ test = ["pytest (>=8.1,<9.0)"] [[package]] name = "ytmusicapi" -version = "1.8.0" +version = "1.8.1" description = "Unofficial API for YouTube Music" optional = false python-versions = ">=3.9" files = [ - {file = "ytmusicapi-1.8.0-py3-none-any.whl", hash = "sha256:b4a73991e8bcaf9537b6245712734303725ddd435768000ec5dd45fa993f26ee"}, - {file = "ytmusicapi-1.8.0.tar.gz", hash = "sha256:8b2bec6a4615f5144fc5f2daaeaab3cd059b602d916f323ef72b7d71b1e21f95"}, + {file = "ytmusicapi-1.8.1-py3-none-any.whl", hash = "sha256:472f51844541b12818da85217409033ecda93be6d40c1660fd32d064948a8f10"}, + {file = "ytmusicapi-1.8.1.tar.gz", hash = "sha256:1bd4a85f81efe824a4eaec26502b9d27887792f590d80bbdf3c9c5943ec5fd6e"}, ] [package.dependencies] @@ -3029,4 +3034,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.13" -content-hash = "050b6c1f1f991c436dc9ed7a10c4f1d8e6425f080ba946f3110f6411a8f565b5" +content-hash = "3d07fc2de3150aaab425865e54739db31cad3b7c168b14097d235f1dd33552e9" diff --git a/pyproject.toml b/pyproject.toml index ae593fecd..5addb83e9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -56,7 +56,7 @@ pyfakefs = "^5.6.0" pytest-cov = "^5.0.0" pytest-subprocess = "^1.5.2" pytest-asyncio = "^0.21.1" -mypy = "^1.11.1" +mypy = "^1.11.2" pylint = "^3.2.6" black = "^24.8.0" mdformat-gfm = "^0.3.5" From c91efb961b8ca3d6ab23291ea675cbcee127f9b8 Mon Sep 17 00:00:00 2001 From: kuba Date: Mon, 26 Aug 2024 12:13:03 +0200 Subject: [PATCH 4/6] bring back python 3.8 support --- poetry.lock | 111 ++++++++++++++++++++++++++++++++++++++++++++++++- pyproject.toml | 8 +++- 2 files changed, 115 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index e91fde211..4e73d6875 100644 --- a/poetry.lock +++ b/poetry.lock @@ -22,6 +22,9 @@ files = [ {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, ] +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} + [[package]] name = "anyio" version = "3.7.1" @@ -57,6 +60,21 @@ files = [ [package.dependencies] typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} +[[package]] +name = "astunparse" +version = "1.6.3" +description = "An AST unparser for Python" +optional = false +python-versions = "*" +files = [ + {file = "astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8"}, + {file = "astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872"}, +] + +[package.dependencies] +six = ">=1.6.1,<2.0" +wheel = ">=0.23.0,<1.0" + [[package]] name = "async-timeout" version = "4.0.3" @@ -79,6 +97,9 @@ files = [ {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, ] +[package.dependencies] +pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} + [package.extras] dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] @@ -689,6 +710,7 @@ files = [ ] [package.dependencies] +astunparse = {version = ">=1.6", markers = "python_version < \"3.9\""} colorama = ">=0.4" [[package]] @@ -732,6 +754,28 @@ doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linke perf = ["ipython"] test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] +[[package]] +name = "importlib-resources" +version = "6.4.4" +description = "Read resources from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_resources-6.4.4-py3-none-any.whl", hash = "sha256:dda242603d1c9cd836c3368b1174ed74cb4049ecd209e7a1a0104620c18c5c11"}, + {file = "importlib_resources-6.4.4.tar.gz", hash = "sha256:20600c8b7361938dc0bb2d5ec0297802e575df486f5a544fa414da65e13721f7"}, +] + +[package.dependencies] +zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "zipp (>=3.17)"] +type = ["pytest-mypy"] + [[package]] name = "iniconfig" version = "2.0.0" @@ -1730,6 +1774,7 @@ files = [ [package.dependencies] deprecated = "*" +importlib-resources = {version = "*", markers = "python_version < \"3.9\""} jaconv = "*" [package.extras] @@ -1941,6 +1986,17 @@ files = [ {file = "pytube-15.0.0.tar.gz", hash = "sha256:076052efe76f390dfa24b1194ff821d4e86c17d41cb5562f3a276a8bcbfc9d1d"}, ] +[[package]] +name = "pytz" +version = "2024.1" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, +] + [[package]] name = "pywin32-ctypes" version = "0.2.3" @@ -2289,6 +2345,7 @@ files = [ [package.dependencies] markdown-it-py = ">=2.2.0" pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.9\""} [package.extras] jupyter = ["ipywidgets (>=7.5.1,<9)"] @@ -2362,6 +2419,28 @@ files = [ {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, ] +[[package]] +name = "spotipy" +version = "2.23.0" +description = "A light weight Python library for the Spotify Web API" +optional = false +python-versions = "*" +files = [ + {file = "spotipy-2.23.0-py2-none-any.whl", hash = "sha256:da850fbf62faaa05912132d2886c293a5fbbe8350d0821e7208a6a2fdd6a0079"}, + {file = "spotipy-2.23.0-py3-none-any.whl", hash = "sha256:6bf8b963c10d0a3e51037e4baf92e29732dee36b2a1f1b7dcc8cd5771e662a5b"}, + {file = "spotipy-2.23.0.tar.gz", hash = "sha256:0dfafe08239daae6c16faa68f60b5775d40c4110725e1a7c545ad4c7fb66d4e8"}, +] + +[package.dependencies] +redis = ">=3.5.3" +requests = ">=2.25.0" +six = ">=1.15.0" +urllib3 = ">=1.26.0" + +[package.extras] +doc = ["Sphinx (>=1.5.2)"] +test = ["mock (==2.0.0)"] + [[package]] name = "spotipy" version = "2.24.0" @@ -2789,6 +2868,20 @@ files = [ {file = "websockets-13.0.tar.gz", hash = "sha256:b7bf950234a482b7461afdb2ec99eee3548ec4d53f418c7990bb79c620476602"}, ] +[[package]] +name = "wheel" +version = "0.44.0" +description = "A built-package format for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "wheel-0.44.0-py3-none-any.whl", hash = "sha256:2376a90c98cc337d18623527a97c31797bd02bad0033d41547043a1cbfbe448f"}, + {file = "wheel-0.44.0.tar.gz", hash = "sha256:a29c3f2817e95ab89aa4660681ad547c0e9547f20e75b0562fe7723c9a2a9d49"}, +] + +[package.extras] +test = ["pytest (>=6.0.0)", "setuptools (>=65)"] + [[package]] name = "wrapt" version = "1.16.0" @@ -3002,6 +3095,20 @@ secretstorage = ["cffi", "secretstorage"] static-analysis = ["autopep8 (>=2.0,<3.0)", "ruff (>=0.5.0,<0.6.0)"] test = ["pytest (>=8.1,<9.0)"] +[[package]] +name = "ytmusicapi" +version = "1.7.5" +description = "Unofficial API for YouTube Music" +optional = false +python-versions = ">=3.8" +files = [ + {file = "ytmusicapi-1.7.5-py3-none-any.whl", hash = "sha256:fb46169553b4ed59b7450b088c861eda86d88cff0080b9ddf53d4452dba92386"}, + {file = "ytmusicapi-1.7.5.tar.gz", hash = "sha256:b306c330bdf81888f01d9f62fea96bf19bdd521999536988e98dbf6be41009fe"}, +] + +[package.dependencies] +requests = ">=2.22" + [[package]] name = "ytmusicapi" version = "1.8.1" @@ -3033,5 +3140,5 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" -python-versions = ">=3.9,<3.13" -content-hash = "3d07fc2de3150aaab425865e54739db31cad3b7c168b14097d235f1dd33552e9" +python-versions = ">=3.8,<3.13" +content-hash = "cefeb4724cab51f40a8ac50c20ba6fe820fe8166cde16506737e2c2e60facd37" diff --git a/pyproject.toml b/pyproject.toml index 5addb83e9..67ff25904 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,6 +16,7 @@ classifiers = [ "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -26,9 +27,12 @@ classifiers = [ ] [tool.poetry.dependencies] -python = ">=3.9,<3.13" +python = ">=3.8,<3.13" -spotipy = "^2.24.0" +spotipy = [ + {version = "^2.23.0", python = "<=3.8"}, + {version = "^2.24.0", python = ">3.8"}, +] ytmusicapi = [ {version = "^1.3.2", python = "<3.10"}, {version = "^1.4.1", python = ">=3.10"}, From 30342eafd844db10c59841019d8a6e9b8fc52920 Mon Sep 17 00:00:00 2001 From: kuba Date: Mon, 26 Aug 2024 12:55:40 +0200 Subject: [PATCH 5/6] fix mypy errors --- spotdl/console/web.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spotdl/console/web.py b/spotdl/console/web.py index 8b846c50c..56171fd7c 100644 --- a/spotdl/console/web.py +++ b/spotdl/console/web.py @@ -80,7 +80,7 @@ def web(web_settings: WebOptions, downloader_settings: DownloaderOptions): gui_repo, output_dir=str(web_app_dir), ) - web_app_dir = os.path.join(web_app_dir, "dist") + web_app_dir = Path(os.path.join(web_app_dir, "dist")).resolve() elif web_settings["web_gui_location"]: web_app_dir = Path(web_settings["web_gui_location"]).resolve() logger.info("Using custom web app location: %s", web_app_dir) @@ -88,7 +88,7 @@ def web(web_settings: WebOptions, downloader_settings: DownloaderOptions): logger.info( "Using cached web app. To update use the `--force-update-gui` flag." ) - web_app_dir = os.path.join(web_app_dir, "dist") + web_app_dir = Path(os.path.join(web_app_dir, "dist")).resolve() app_state.api = FastAPI( title="spotDL", From 8756f19a9d5decddb54dbca74a2e13a30f42e1dc Mon Sep 17 00:00:00 2001 From: kuba Date: Mon, 26 Aug 2024 12:56:34 +0200 Subject: [PATCH 6/6] v4.2.7 --- pyproject.toml | 2 +- spotdl/_version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 67ff25904..5d769ade5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "spotdl" -version = "4.2.6" +version = "4.2.7" description = "Download your Spotify playlists and songs along with album art and metadata" license = "MIT" authors = ["spotDL Team "] diff --git a/spotdl/_version.py b/spotdl/_version.py index adfd0e784..6dc4101f5 100644 --- a/spotdl/_version.py +++ b/spotdl/_version.py @@ -2,4 +2,4 @@ Version module for spotdl. """ -__version__ = "4.2.6" +__version__ = "4.2.7"