[PATCH 00/13] Add spotify-downloader.

  • Open
  • quality assurance status badge
Details
2 participants
  • 45mg
  • Sharlatan Hellseher
Owner
unassigned
Submitted by
45mg
Severity
normal

Debbugs page

45mg wrote 2 weeks ago
(address . guix-patches@gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
cover.1741114923.git.45mg.writes@gmail.com
If my understanding is correct, patch 4/13 will cause huge rebuilds (~4000
packages) as it changes the derivation for python-websockets to inherit from
the new python-websockets-14. I don't know how we normally handle
this. Guidance would be appreciated.

3/13 (python-rich) and 2/13 (python-rapidfuzz) will also cause a lot of
rebuilds - 637 and 147 packages, respectively (if I'm reading the `guix
refresh` output correctly). I don't have the hardware to build all of these
and see if they still work.

Hopefully we can figure this out.

45mg (13):
gnu: python-slugify: Update to 8.0.4.
gnu: python-rapidfuzz: Update to 3.10.1.
gnu: python-rich: Update to 13.9.4.
gnu: Add python-websockets-14.
gnu: Add python-dacite.
gnu: Add python-jaconv.
gnu: Add python-pykakasi.
gnu: Add python-syncedlyrics.
gnu: Add python-soundcloud-v2.
gnu: Add python-ytmusicapi.
gnu: Add python-pytube.
gnu: Add python-spotipy.
gnu: Add spotify-downloader.

gnu/packages/python-web.scm | 251 ++++++++++++++++++++++++++++++++++--
gnu/packages/python-xyz.scm | 119 +++++++++++++++--
2 files changed, 350 insertions(+), 20 deletions(-)


base-commit: f3064b765a5bbbff72bf2fd0e5fa6ecc4b1136f0
--
2.48.1
45mg wrote 2 weeks ago
[PATCH 01/13] gnu: python-slugify: Update to 8.0.4.
(address . 76746@debbugs.gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
608c796029989c36f8925b31aa531d29e76ef550.1741114923.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (python-slugify): Update to 8.0.4.
[source]: Fetch from GitHub, as PyPI archive no longer includes tests.

Change-Id: I0b30b800362694aeee545de736213ea939dbd24e
---
gnu/packages/python-web.scm | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

Toggle diff (27 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 18c4931c49..62d746cba2 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -7091,13 +7091,16 @@ (define-public python-slowapi
(define-public python-slugify
(package
(name "python-slugify")
- (version "5.0.2")
+ (version "8.0.4")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "python-slugify" version))
+ (method git-fetch) ; no tests in PyPI
+ (uri (git-reference
+ (url "https://github.com/un33k/python-slugify")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1aww2ncglyii4jkbfjxqhinivawf9zmwifcj32d69gpwp6h86czi"))))
+ (base32 "0z83nwy7acc72mb2jv3516nfplah1wm61wkmnzl71dh8i4q985yd"))))
(propagated-inputs
(list python-unidecode python-text-unidecode))
(arguments
--
2.48.1
45mg wrote 2 weeks ago
[PATCH 02/13] gnu: python-rapidfuzz: Update to 3.10.1.
(address . 76746@debbugs.gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
a48f390565f10ce2b60306046a2ddb879b6e3acc.1741114923.git.45mg.writes@gmail.com
* gnu/packages/python-xyz.scm (python-rapidfuzz): Update to 3.10.1.
[native-inputs]: Add cmake-minimal, to not build pure-Python version.
Replace python-scikit-build with python-scikit-build-core.

Change-Id: I5a28bf883377814465ae088ae5fbde81120e03bb
---
gnu/packages/python-xyz.scm | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)

Toggle diff (36 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 268510f3e2..e93a6dcb7c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2863,19 +2863,23 @@ (define-public python-d2to1
(define-public python-rapidfuzz
(package
(name "python-rapidfuzz")
- (version "3.6.1")
+ (version "3.10.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "rapidfuzz" version))
(sha256
- (base32 "1rrx043zqqql31pcp92k61digibymp3l382gaxr4h8717kp0nrim"))))
+ (base32 "0yarb1k40a36f4p2afy5was9ifbq1jdyyyfw88zmp4bshinm85as"))))
(build-system pyproject-build-system)
(native-inputs
- (list python-packaging
- python-pytest
- python-scikit-build
- python-setuptools))
+ (list
+ ;; If it doesn't detect cmake, it will build a pure-Python version that
+ ;; fails some tests.
+ cmake-minimal
+ python-packaging
+ python-pytest
+ python-scikit-build-core
+ python-setuptools))
(home-page "https://github.com/rapidfuzz/RapidFuzz")
(synopsis "Rapid fuzzy string matching")
(description "RapidFuzz is a fast string matching library for Python and
--
2.48.1
45mg wrote 2 weeks ago
[PATCH 03/13] gnu: python-rich: Update to 13.9.4.
(address . 76746@debbugs.gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
95d388fab9f26eea87e45d8ba90f0616104ba7a7.1741114923.git.45mg.writes@gmail.com
* gnu/packages/python-xyz.scm (python-rich): Update to 13.9.4.
[source]{url}: Use new GitHub repository.
[arguments]{test-flags}: Skip another failing test.
[native-inputs]: Add which.

Change-Id: Iea6416016e24e0e2684bbf6a767401834fbb581b
---
gnu/packages/python-xyz.scm | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)

Toggle diff (51 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e93a6dcb7c..1976abe8be 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -21809,23 +21809,24 @@ (define-public python-slugid
(define-public python-rich
(package
(name "python-rich")
- (version "13.7.1")
+ (version "13.9.4")
(source
(origin
;; There are no tests in the PyPI tarball.
(method git-fetch)
(uri (git-reference
- (url "https://github.com/willmcgugan/rich")
+ (url "https://github.com/Textualize/rich")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0jvkcp473c0icbb8md3grc3285j2cy0z0swxgk2g67d9n0zfdfzc"))))
+ "03qqipjjxpp4c984nzr667k9sa15bmbkzl0865jkyjvy6kvjkak5"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
- ;; These fail for unknown reasons, but the results look identical.
+ ;; These fail for unknown reasons. The results look nearly identical
+ ;; except for some minor differences in the colors.
;; Perhaps only the terminal escape sequences are superficially
;; different?
'(list "-k" (string-append "not test_card_render"
@@ -21834,12 +21835,14 @@ (define-public python-rich
" and not test_python_render_simple"
" and not test_python_render_simple_passing_lexer_instance"
" and not test_python_render_indent_guides"
+ " and not test_background_color_override_includes_padding"
" and not test_option_no_wrap"
" and not test_syntax_highlight_ranges"))))
(propagated-inputs
(list python-markdown-it-py python-pygments))
(native-inputs
- (list python-poetry-core python-pytest))
+ (list which ;needed by test_brokenpipeerror
+ python-poetry-core python-pytest))
(home-page "https://github.com/willmcgugan/rich")
(synopsis "Render rich text and more to the terminal")
(description
--
2.48.1
45mg wrote 2 weeks ago
[PATCH 04/13] gnu: Add python-websockets-14.
(address . 76746@debbugs.gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
58a444468b7086fdef2bc59cf7932007a7c565a5.1741114923.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (python-websockets-14): New variable.
[source]{uri}: Use new GitHub repository.
[home-page]: Likewise.
(python-websockets): Inherit from python-websockets-14.

Change-Id: I91b90bf4e407f6726b0ea1b95b7a69f1bd9471ec
---
gnu/packages/python-web.scm | 26 +++++++++++++++++++++-----
1 file changed, 21 insertions(+), 5 deletions(-)

Toggle diff (63 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 62d746cba2..6a6d588b2e 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -7957,20 +7957,20 @@ (define-public python-warcio
files.")
(license license:asl2.0)))
-(define-public python-websockets
+(define-public python-websockets-14
(package
(name "python-websockets")
- (version "13.1")
+ (version "14.2")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/aaugustin/websockets")
+ (url "https://github.com/python-websockets/websockets")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "1dx3rf6fmg4ir9cfcn1fil446qz879cwrjq2rcz5zvl71xkw6hb3"))))
+ "0j8x1xn3m1jcghwy42y6ibspr9kwazcgdz1c90i0jxdgj50xxbiz"))))
(build-system pyproject-build-system)
(arguments
(list #:phases
@@ -7985,7 +7985,7 @@ (define-public python-websockets
(native-inputs
(list python-setuptools
python-wheel))
- (home-page "https://github.com/aaugustin/websockets")
+ (home-page "https://github.com/python-websockets/websockets")
(synopsis
"Python implementation of the WebSocket Protocol (RFC 6455 & 7692)")
(description
@@ -7996,6 +7996,22 @@ (define-public python-websockets
it provides an elegant coroutine-based API.")
(license license:bsd-3)))
+(define-public python-websockets
+ (package
+ (inherit python-websockets-14)
+ (name "python-websockets")
+ (version "13.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/python-websockets/websockets")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1dx3rf6fmg4ir9cfcn1fil446qz879cwrjq2rcz5zvl71xkw6hb3"))))))
+
(define-public python-selenium
(package
(name "python-selenium")
--
2.48.1
45mg wrote 2 weeks ago
[PATCH 05/13] gnu: Add python-dacite.
(address . 76746@debbugs.gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
949712123cfeb1faf795ecb926fdb9779f4f54c2.1741114923.git.45mg.writes@gmail.com
* gnu/packages/python-xyz.scm (python-dacite): New variable.

Change-Id: Id70254ff672871c2ecdd59c648b9107f92c1454d
---
gnu/packages/python-xyz.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 1976abe8be..22db4d8b45 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -33941,6 +33941,38 @@ (define-public python-dictpath
accessor layer.")
(license license:asl2.0)))
+(define-public python-dacite
+ (package
+ (name "python-dacite")
+ (version "1.9.2")
+ (source
+ (origin
+ (method git-fetch) ;tests not properly included in PyPI
+ (uri (git-reference
+ (url "https://github.com/konradhalas/dacite")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1maananph172vi3v919zryhn9hswhcjb8w3srknkd4b9y1dfl0wq"))))
+ (build-system pyproject-build-system)
+ (arguments
+ ;; Disable benchmarks.
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'patch-pyproject-remove-benchmarks
+ (lambda _
+ (substitute* "pyproject.toml"
+ (("--benchmark-autosave --benchmark-json=benchmark.json")
+ "")))))
+ #:test-flags '("--ignore=tests/performance")))
+ (native-inputs (list python-pytest python-pytest-benchmark
+ python-setuptools python-wheel))
+ (home-page "https://github.com/konradhalas/dacite")
+ (synopsis "Python 3 module to simplify creation of data classes from
+dictionaries")
+ (description "This Python 3 module simplifies creation of data
+classes (PEP 557) from dictionaries.")
+ (license license:expat)))
+
(define-public pyzo
(package
(name "pyzo")
--
2.48.1
45mg wrote 2 weeks ago
[PATCH 06/13] gnu: Add python-jaconv.
(address . 76746@debbugs.gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
54961c3cfca0cf261d3b3862584ba365e9ae7469.1741114923.git.45mg.writes@gmail.com
* gnu/packages/python-xyz.scm (python-jaconv): New variable.

Change-Id: I0b29cd00f311ae2a4dbb2c8f59148fc4bbadc144
---
gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 22db4d8b45..cec76daa24 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -34460,6 +34460,28 @@ (define-public python-flufl-i18n
different tasks.")
(license license:asl2.0)))
+(define-public python-jaconv
+ (package
+ (name "python-jaconv")
+ (version "0.3.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ikegami-yukino/jaconv")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1pfx0zvyz07c1jywrv5ayklpmjz91mrb62gc52g48d4qnqwa3fzn"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools python-wheel))
+ (home-page "https://github.com/ikegami-yukino/jaconv")
+ (synopsis "Python Japanese character interconverter")
+ (description
+ "@code{jaconv} (Japanese Converter) is an interconverter for Hiragana,
+Katakana, Hankaku (half-width character) and Zenkaku (full-width character)")
+ (license license:expat)))
+
(define-public python-flufl-lock
(package
(name "python-flufl-lock")
--
2.48.1
45mg wrote 2 weeks ago
[PATCH 07/13] gnu: Add python-pykakasi.
(address . 76746@debbugs.gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
92408fbd352b03af56b6842463f69aaee062861d.1741114923.git.45mg.writes@gmail.com
* gnu/packages/python-xyz.scm (python-pykakasi): New variable.

Change-Id: I127cc34f58d4f8df737f878499c448d969c9a831
---
gnu/packages/python-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index cec76daa24..f9390b899c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -34482,6 +34482,42 @@ (define-public python-jaconv
Katakana, Hankaku (half-width character) and Zenkaku (full-width character)")
(license license:expat)))
+(define-public python-pykakasi
+ (package
+ (name "python-pykakasi")
+ (version "2.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pykakasi" version))
+ (sha256
+ (base32 "18dhcw7myw5idajnfynjbvqxmyf9m0cygfwsavbbi7zmcf72l1gs"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags '(list "-k"
+ (string-append
+ ;; Disable benchmarks.
+ "not test_benchmark"
+ " and not pytest_benchmark_update_machine_info"
+ " and not pytest_benchmark_update_json"
+ ;; Fails with AssertionError
+ " and not test_aozora"))))
+ (propagated-inputs (list python-jaconv python-deprecated))
+ (native-inputs (list python-py-cpuinfo
+ python-pytest
+ python-pytest-benchmark
+ python-setuptools
+ python-setuptools-scm
+ python-wheel))
+ (home-page "https://codeberg.org/miurahr/pykakasi")
+ (synopsis "Convert Japanese Kana-kanji sentences into Kana-Roman")
+ (description
+ "This is a Python Natural Language Processing (NLP) library to
+transliterate hiragana, katakana and kanji (Japanese text) into
+rōmaji (Latin/Roman alphabet). It can handle characters in NFC form.")
+ (license license:gpl2)))
+
(define-public python-flufl-lock
(package
(name "python-flufl-lock")
--
2.48.1
45mg wrote 2 weeks ago
[PATCH 08/13] gnu: Add python-syncedlyrics.
(address . 76746@debbugs.gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
71c8ef4a8cf043643127f42a0a4e799fabcdf52f.1741114923.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (python-syncedlyrics): New variable.

Change-Id: I07915603eb234ca7952c3a682510f96e4d634f10
---
gnu/packages/python-web.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 6a6d588b2e..7755898441 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -10679,6 +10679,31 @@ (define-public python-shopifyapi
list, create, update, or delete resources (e.g. Order, Product, Collection).")
(license license:expat)))
+(define-public python-syncedlyrics
+ (package
+ (name "python-syncedlyrics")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "syncedlyrics" version))
+ (sha256
+ (base32 "1c361xwxzcxq1vz2wilva8hr2x5s8kgidsxldgcxavasxmlj9crx"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-poetry-core python-setuptools python-wheel))
+ (propagated-inputs (list python-beautifulsoup4
+ python-requests
+ python-rapidfuzz))
+ (arguments
+ (list
+ #:tests? #f)) ;Tests require network
+ (home-page "https://github.com/moehmeni/syncedlyrics")
+ (synopsis "Library to fetch lyrics from common online lyrics providers")
+ (description
+ "A Python 3 library to get LRC format synchronized lyrics for your
+music.")
+ (license license:expat)))
+
(define-public python-whatthepatch
(package
(name "python-whatthepatch")
--
2.48.1
45mg wrote 2 weeks ago
[PATCH 09/13] gnu: Add python-soundcloud-v2.
(address . 76746@debbugs.gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
1b8259c9ca8ee8dd64d7b37e037dfe16ef759ffa.1741114923.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (python-soundcloud-v2): New variable.

Change-Id: I6126d879bb6f44155e61e6eaed2cc9fe51c4103e
---
gnu/packages/python-web.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 7755898441..41b141e012 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -10704,6 +10704,31 @@ (define-public python-syncedlyrics
music.")
(license license:expat)))
+(define-public python-soundcloud-v2
+ (package
+ (name "python-soundcloud-v2")
+ (version "1.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "soundcloud-v2" version))
+ (sha256
+ (base32 "0hw2wxrg0rgj0x1ccy0lz0rws39byzs1din1573rxz0gdha169a6"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-poetry-core python-setuptools python-wheel))
+ (propagated-inputs (list python-dacite
+ python-dateutil
+ python-rapidfuzz
+ python-requests))
+ (arguments
+ (list #:tests? #f)) ;Tests require network
+ (home-page "https://github.com/7x11x13/soundcloud.py")
+ (synopsis "Unofficial wrapper for internal v2 SoundCloud API")
+ (description
+ "A Python wrapper for some of the internal v2 SoundCloud API (read/GET
+only methods). Does not require an API key.")
+ (license license:expat)))
+
(define-public python-whatthepatch
(package
(name "python-whatthepatch")
--
2.48.1
45mg wrote 2 weeks ago
[PATCH 10/13] gnu: Add python-ytmusicapi.
(address . 76746@debbugs.gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
f1b4b804e39d6c6f326cf974ff80a0b6aef61117.1741114923.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (python-ytmusicapi): New variable.

Change-Id: I97f4ea045f0ebb82cc2690d71a126988367e273d
---
gnu/packages/python-web.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 41b141e012..1717b6fdfc 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -10729,6 +10729,32 @@ (define-public python-soundcloud-v2
only methods). Does not require an API key.")
(license license:expat)))
+(define-public python-ytmusicapi
+ (package
+ (name "python-ytmusicapi")
+ (version "1.10.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ytmusicapi" version))
+ (sha256
+ (base32 "1yb95pv3jxbmg43lv92ll6741nzlsksixxlnggs6prqn352qa9l1"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest
+ python-setuptools
+ python-setuptools-scm
+ python-wheel))
+ (propagated-inputs (list python-requests))
+ (arguments
+ '(#:tests? #f)) ;tests require network
+ (home-page "https://github.com/sigma67/ytmusicapi")
+ (synopsis "Python 3 library for the YouTube Music API")
+ (description
+ "This is a Python 3 library to send requests to the YouTube Music API. It
+emulates YouTube Music web client requests using the user’s cookie data for
+authentication.")
+ (license license:expat)))
+
(define-public python-whatthepatch
(package
(name "python-whatthepatch")
--
2.48.1
45mg wrote 2 weeks ago
[PATCH 11/13] gnu: Add python-pytube.
(address . 76746@debbugs.gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
201fec39f775e54d53521d4ebb77a16a00cf2e44.1741114923.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (python-pytube): New variable.

Change-Id: Ie2b342a884b4694a0dc8a0c959a918e4b0ab25b3
---
gnu/packages/python-web.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 1717b6fdfc..6666fb5675 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -10755,6 +10755,36 @@ (define-public python-ytmusicapi
authentication.")
(license license:expat)))
+(define-public python-pytube
+ (package
+ (name "python-pytube")
+ (version "15.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pytube/pytube")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ "1598764vnzhc5s4w1car5sci3fmf8lp3rflsysb76f794ms35vvd")))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools python-wheel))
+ (arguments
+ '(#:test-flags ;Disable network-dependent tests.
+ '("--ignore=tests/test_extract.py"
+ "--ignore=tests/test_query.py"
+ "--ignore=tests/test_streams.py"
+ "--ignore=tests/test_main.py"
+ "-k"
+ "not test_streaming")))
+ (home-page "https://github.com/pytube/pytube")
+ (synopsis "Library and utility for downloading YouTube videos")
+ (description
+ "This is a lightweight, dependency-free Python 3 library (and
+command-line utility) for downloading YouTube videos.")
+ (license license:unlicense)))
+
(define-public python-whatthepatch
(package
(name "python-whatthepatch")
--
2.48.1
45mg wrote 2 weeks ago
[PATCH 12/13] gnu: Add python-spotipy.
(address . 76746@debbugs.gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
17fa6886eeffc6d958b417d622fbda4e6989231b.1741114923.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (python-spotipy): New variable.

Change-Id: Id1d2a46997eb1dab9be6951a1b2d9f5a43083863
---
gnu/packages/python-web.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 6666fb5675..17edbad7a1 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -10785,6 +10785,29 @@ (define-public python-pytube
command-line utility) for downloading YouTube videos.")
(license license:unlicense)))
+(define-public python-spotipy
+ (package
+ (name "python-spotipy")
+ (version "2.24.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "spotipy" version))
+ (sha256
+ (base32 "03gg9631nrgsq7daj6w70na77ha2wzghq9spy4d5b1i0chgghsir"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-redis python-requests python-urllib3))
+ (native-inputs (list python-pytest python-setuptools python-wheel))
+ (arguments
+ '(#:tests? #f)) ;tests require network
+ (home-page "https://spotipy.readthedocs.io/en/2.25.0/")
+ (synopsis "Python library for the Spotify Web API")
+ (description
+ "Spotipy is a lightweight Python library for the Spotify Web API. It aims
+to provide full access to all of the music data provided by the Spotify
+platform.")
+ (license license:expat)))
+
(define-public python-whatthepatch
(package
(name "python-whatthepatch")
--
2.48.1
45mg wrote 2 weeks ago
[PATCH 13/13] gnu: Add spotify-downloader.
(address . 76746@debbugs.gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
b50d75213f4271ff141caacf7a47c9920038958f.1741114923.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (spotify-downloader): New variable.

Change-Id: I5ab889b33a10beb14545030ee75bd38a1663cc28
---
gnu/packages/python-web.scm | 85 +++++++++++++++++++++++++++++++++++++
1 file changed, 85 insertions(+)

Toggle diff (112 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 17edbad7a1..26803dc996 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -117,6 +117,7 @@ (define-module (gnu packages python-web)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages music)
#:use-module (gnu packages node)
#:use-module (gnu packages openstack)
#:use-module (gnu packages pcre)
@@ -139,6 +140,7 @@ (define-module (gnu packages python-web)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
+ #:use-module (gnu packages video)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
@@ -10808,6 +10810,89 @@ (define-public python-spotipy
platform.")
(license license:expat)))
+(define-public spotify-downloader
+ (package
+ (name "spotify-downloader")
+ (version "4.2.11")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/spotDL/spotify-downloader")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ "18lwimvld07ywzmzffg18j7dpllyk1335x786yhjzldlhx1akmhn")))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list ffmpeg
+ python-beautifulsoup4
+ python-fastapi
+ python-mutagen
+ python-platformdirs
+ python-pydantic-2
+ python-pykakasi
+ python-slugify
+ python-pytube
+ python-rapidfuzz
+ python-requests-next
+ python-rich
+ python-soundcloud-v2
+ python-spotipy
+ python-syncedlyrics
+ python-uvicorn
+ python-websockets-14
+ python-ytmusicapi
+ yt-dlp))
+ (native-inputs (list nss-certs-for-test
+ python-poetry-core
+ python-pytest
+ python-pytest-mock
+ python-pytest-subprocess
+ python-pytest-vcr
+ python-setuptools
+ python-wheel))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; XXX: We use later versions of uvicorn and fastapi, since it proved
+ ;; too difficult to package the older ones. Note that these packages
+ ;; are network-related, and we disable network-related tests...
+ (add-after 'unpack 'use-later-versions
+ (lambda _
+ (substitute* "pyproject.toml"
+ (("^fastapi = \"\\^0.103.0\"")
+ "fastapi = \"^0.115.0\"")
+ (("^uvicorn = \"\\^0.23.2\"")
+ "uvicorn = \"^0.34.0\""))))
+ (add-before 'check 'set-HOME
+ ;; Some tests need this
+ (lambda _ (setenv "HOME" "/tmp"))))
+ #:test-flags
+ ;; Disable network dependent tests.
+ (list "--ignore=tests/test_init.py"
+ "--ignore=tests/test_matching.py"
+ "--ignore=tests/providers/lyrics"
+ "--ignore=tests/types"
+ "--ignore=tests/utils/test_github.py"
+ "--ignore=tests/utils/test_m3u.py"
+ "--ignore=tests/utils/test_metadata.py"
+ "--ignore=tests/utils/test_search.py"
+ "-k"
+ ,(string-append "not test_convert"
+ " and not test_download_ffmpeg"
+ " and not test_download_song"
+ " and not test_preload_song"
+ " and not test_yt_get_results"
+ " and not test_yt_search"
+ " and not test_ytm_search"
+ " and not test_ytm_get_results"))))
+ (home-page "https://github.com/spotDL/spotify-downloader")
+ (synopsis "Download Spotify songs from YouTube")
+ (description
+ "spotDL finds songs from Spotify on YouTube and downloads them - along
+with album art, lyrics and metadata.")
+ (license license:expat)))
+
(define-public python-whatthepatch
(package
(name "python-whatthepatch")
--
2.48.1
Sharlatan Hellseher wrote 1 weeks ago
[PATCH 00/13] Add spotify-downloader.
(address . 76746@debbugs.gnu.org)(name . 45mg)(address . 45mg.writes@gmail.com)
87o6y9ke7l.fsf@gmail.com
Hi 45mg,

Thanks for the patch series.

I've started the review will report on any findings on my free time.

Toggle quote (5 lines)
> If my understanding is correct, patch 4/13 will cause huge rebuilds
> (~4000 packages) as it changes the derivation for python-websockets to
> inherit from the new python-websockets-14. I don't know how we normally
> handle this. Guidance would be appreciated.

The easiest fix - use python-websockets-next@14.2 which inherits
python-websockets@13.1 and keeps all derivations away from
re-build.

Depending on the load in QA it may be detected and reported, I might
help here with.
[PATCH 03/13] gnu: python-rich: Update to 13.9.4.
[PATCH 02/13] gnu: python-rapidfuzz: Update to 3.10.1.

To ensure the build regression check after 3/13 and 2/13 I would apply
this checks:
Toggle snippet (3 lines)
./pre-inst-env guix build -P 1 python-rich
./pre-inst-env guix build -P 1 python-rapidfuzz
that insures any dependent where packages in the first level still
build.

Or you may take a look at python-team and check if that packages are
already updated (its in the queue to be merged soon

--
Oleg
-----BEGIN PGP SIGNATURE-----

iQJKBAEBCgA0FiEEmEeB3micIcJkGAhndtcnv/Ys0rUFAmfOHA4WHHNoYXJsYXRh
bnVzQGdtYWlsLmNvbQAKCRB21ye/9izStVLeD/9PRgogO/SCnqMFsr654t+zH8a/
FLTmqJbU8sY5BAXeKcPOde/Uxo08xuTIPxWjVZn4gk1lfcqzWkVr/g7LT8eeFiMy
X0618nbJyAdmEinb/KD68Uvtk3iavFQEZLg9xmFObcsGvuIjfCgWw63Lxby0t38/
RwFs8+ESl4pRb6T/ecA77IFzdqS1QnWwfHyf7EaPj2h1YLJWIZLJO9ZiZVD9wL6a
oV5Se4OSB+ubGaNaZ5izX5D2w/eSb+QxklJm7943wylWtobMVZv5qrgrf3DDyijh
vVr1jaeQmurQ8h90fVn65WU7fCfR4j2tOouwUBJw1HoHTrCK/llGXgkfulPEhZLn
FkfZXDFWYKNGnAbUo/9WvlRfbnqgppmwYg5pCUtozKPmpLmibHlijp3Lh36Y56At
lvXYYY0QMgs7CsHXuRVapDgeE4oiVq26KSTQQvSH+UojZe3DJ2NZ1aMGoWWcn3ay
PyS+OnHHZ9irs5auJJPzwvkxZvTT3ImFjM1Jc5OvG1HkgRp0HnUkhHJJ0A9fTVOQ
R5bklviUqzM5Q59/Zpn5z1MpbiwKSi5NrRybaldcdqxTOhHF84i88nL3OCzJBkCM
qOuus25V83g3wRWy2HhjvFWk4mFocBuXuZ6KH04J9ULhfr4B9nDl2rrqo7tJpSjl
7YC6oVY/eCKKX9m2uQ==
=pV6Y
-----END PGP SIGNATURE-----

45mg wrote 5 days ago
[PATCH v2 00/13] Add spotify-downloader.
(name . 45mg)(address . 45mg.writes@gmail.com)(address . 76746@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
cover.1741702571.git.45mg.writes@gmail.com
Hi Guix,

This revision makes only one change. In 4/13 of the previous revision,
python-websockets-14 was introduced and python-websockets was made to inherit
from it; this would cause massive rebuilds due to the package definition
changing. In this revision, it's reversed as suggested by Sharlatan [1]:
python-websockets-14 inherits from python-websockets, which is unchanged.


45mg (13):
gnu: python-slugify: Update to 8.0.4.
gnu: python-rapidfuzz: Update to 3.10.1.
gnu: python-rich: Update to 13.9.4.
gnu: Add python-websockets-14.
gnu: Add python-dacite.
gnu: Add python-jaconv.
gnu: Add python-pykakasi.
gnu: Add python-syncedlyrics.
gnu: Add python-soundcloud-v2.
gnu: Add python-ytmusicapi.
gnu: Add python-pytube.
gnu: Add python-spotipy.
gnu: Add spotify-downloader.

gnu/packages/python-web.scm | 242 +++++++++++++++++++++++++++++++++++-
gnu/packages/python-xyz.scm | 119 ++++++++++++++++--
2 files changed, 346 insertions(+), 15 deletions(-)


base-commit: 225518ade1a71876584316b66ff1e3dc4a86efbe
--
2.48.1
45mg wrote 5 days ago
[PATCH v2 01/13] gnu: python-slugify: Update to 8.0.4.
(name . 45mg)(address . 45mg.writes@gmail.com)(address . 76746@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
64a00324225b3aa51e8d4d034cdd1f8342037272.1741702571.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (python-slugify): Update to 8.0.4.
[source]: Fetch from GitHub, as PyPI archive no longer includes tests.

Change-Id: I0b30b800362694aeee545de736213ea939dbd24e
---
gnu/packages/python-web.scm | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

Toggle diff (27 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index ad02690b8d..0b0428485b 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -7093,13 +7093,16 @@ (define-public python-slowapi
(define-public python-slugify
(package
(name "python-slugify")
- (version "5.0.2")
+ (version "8.0.4")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "python-slugify" version))
+ (method git-fetch) ; no tests in PyPI
+ (uri (git-reference
+ (url "https://github.com/un33k/python-slugify")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1aww2ncglyii4jkbfjxqhinivawf9zmwifcj32d69gpwp6h86czi"))))
+ (base32 "0z83nwy7acc72mb2jv3516nfplah1wm61wkmnzl71dh8i4q985yd"))))
(propagated-inputs
(list python-unidecode python-text-unidecode))
(arguments
--
2.48.1
45mg wrote 5 days ago
[PATCH v2 02/13] gnu: python-rapidfuzz: Update to 3.10.1.
(name . 45mg)(address . 45mg.writes@gmail.com)(address . 76746@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
ccb514b80d8bfd26aedaa856a9d0cdde566d814c.1741702571.git.45mg.writes@gmail.com
* gnu/packages/python-xyz.scm (python-rapidfuzz): Update to 3.10.1.
[native-inputs]: Add cmake-minimal, to not build pure-Python version.
Replace python-scikit-build with python-scikit-build-core.

Change-Id: I5a28bf883377814465ae088ae5fbde81120e03bb
---
gnu/packages/python-xyz.scm | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)

Toggle diff (36 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 4cb7c72a82..db4ebc8ab4 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2860,19 +2860,23 @@ (define-public python-d2to1
(define-public python-rapidfuzz
(package
(name "python-rapidfuzz")
- (version "3.6.1")
+ (version "3.10.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "rapidfuzz" version))
(sha256
- (base32 "1rrx043zqqql31pcp92k61digibymp3l382gaxr4h8717kp0nrim"))))
+ (base32 "0yarb1k40a36f4p2afy5was9ifbq1jdyyyfw88zmp4bshinm85as"))))
(build-system pyproject-build-system)
(native-inputs
- (list python-packaging
- python-pytest
- python-scikit-build
- python-setuptools))
+ (list
+ ;; If it doesn't detect cmake, it will build a pure-Python version that
+ ;; fails some tests.
+ cmake-minimal
+ python-packaging
+ python-pytest
+ python-scikit-build-core
+ python-setuptools))
(home-page "https://github.com/rapidfuzz/RapidFuzz")
(synopsis "Rapid fuzzy string matching")
(description "RapidFuzz is a fast string matching library for Python and
--
2.48.1
45mg wrote 5 days ago
[PATCH v2 03/13] gnu: python-rich: Update to 13.9.4.
(name . 45mg)(address . 45mg.writes@gmail.com)(address . 76746@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
f6ba51e13010d08b083aeee08433fd1232a1a39a.1741702571.git.45mg.writes@gmail.com
* gnu/packages/python-xyz.scm (python-rich): Update to 13.9.4.
[source]{url}: Use new GitHub repository.
[arguments]{test-flags}: Skip another failing test.
[native-inputs]: Add which.

Change-Id: Iea6416016e24e0e2684bbf6a767401834fbb581b
---
gnu/packages/python-xyz.scm | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)

Toggle diff (51 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index db4ebc8ab4..db105cd427 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -21824,23 +21824,24 @@ (define-public python-slugid
(define-public python-rich
(package
(name "python-rich")
- (version "13.7.1")
+ (version "13.9.4")
(source
(origin
;; There are no tests in the PyPI tarball.
(method git-fetch)
(uri (git-reference
- (url "https://github.com/willmcgugan/rich")
+ (url "https://github.com/Textualize/rich")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0jvkcp473c0icbb8md3grc3285j2cy0z0swxgk2g67d9n0zfdfzc"))))
+ "03qqipjjxpp4c984nzr667k9sa15bmbkzl0865jkyjvy6kvjkak5"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
- ;; These fail for unknown reasons, but the results look identical.
+ ;; These fail for unknown reasons. The results look nearly identical
+ ;; except for some minor differences in the colors.
;; Perhaps only the terminal escape sequences are superficially
;; different?
'(list "-k" (string-append "not test_card_render"
@@ -21849,12 +21850,14 @@ (define-public python-rich
" and not test_python_render_simple"
" and not test_python_render_simple_passing_lexer_instance"
" and not test_python_render_indent_guides"
+ " and not test_background_color_override_includes_padding"
" and not test_option_no_wrap"
" and not test_syntax_highlight_ranges"))))
(propagated-inputs
(list python-markdown-it-py python-pygments))
(native-inputs
- (list python-poetry-core python-pytest))
+ (list which ;needed by test_brokenpipeerror
+ python-poetry-core python-pytest))
(home-page "https://github.com/willmcgugan/rich")
(synopsis "Render rich text and more to the terminal")
(description
--
2.48.1
45mg wrote 5 days ago
[PATCH v2 04/13] gnu: Add python-websockets-14.
(name . 45mg)(address . 45mg.writes@gmail.com)(address . 76746@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
7de4d9f45987adb95816904f78577f3fdaa23664.1741702572.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (python-websockets-14): New
variable. Inherits from python-websockets, with the following changes:
[source]{uri}: Use new GitHub repository.
[home-page]: Likewise.
(python-websockets): Inherit from python-websockets-14.

Change-Id: I91b90bf4e407f6726b0ea1b95b7a69f1bd9471ec
---
gnu/packages/python-web.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (30 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 0b0428485b..ac3ee99609 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -8011,6 +8011,23 @@ (define-public python-websockets
it provides an elegant coroutine-based API.")
(license license:bsd-3)))
+(define-public python-websockets-14
+ (package
+ (inherit python-websockets)
+ (name "python-websockets")
+ (version "14.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/python-websockets/websockets")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0j8x1xn3m1jcghwy42y6ibspr9kwazcgdz1c90i0jxdgj50xxbiz"))))
+ (home-page "https://github.com/python-websockets/websockets")))
+
(define-public python-selenium
(package
(name "python-selenium")
--
2.48.1
45mg wrote 5 days ago
[PATCH v2 06/13] gnu: Add python-jaconv.
(name . 45mg)(address . 45mg.writes@gmail.com)(address . 76746@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
9d63d70b85bf1689afc63220c2f7a279736702cd.1741702572.git.45mg.writes@gmail.com
* gnu/packages/python-xyz.scm (python-jaconv): New variable.

Change-Id: I0b29cd00f311ae2a4dbb2c8f59148fc4bbadc144
---
gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f74b020f6d..4b35f11eec 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -34499,6 +34499,28 @@ (define-public python-flufl-i18n
different tasks.")
(license license:asl2.0)))
+(define-public python-jaconv
+ (package
+ (name "python-jaconv")
+ (version "0.3.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ikegami-yukino/jaconv")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1pfx0zvyz07c1jywrv5ayklpmjz91mrb62gc52g48d4qnqwa3fzn"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools python-wheel))
+ (home-page "https://github.com/ikegami-yukino/jaconv")
+ (synopsis "Python Japanese character interconverter")
+ (description
+ "@code{jaconv} (Japanese Converter) is an interconverter for Hiragana,
+Katakana, Hankaku (half-width character) and Zenkaku (full-width character)")
+ (license license:expat)))
+
(define-public python-flufl-lock
(package
(name "python-flufl-lock")
--
2.48.1
45mg wrote 5 days ago
[PATCH v2 07/13] gnu: Add python-pykakasi.
(name . 45mg)(address . 45mg.writes@gmail.com)(address . 76746@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
f00fda448996522d86426fd3b699f0712b826a87.1741702572.git.45mg.writes@gmail.com
* gnu/packages/python-xyz.scm (python-pykakasi): New variable.

Change-Id: I127cc34f58d4f8df737f878499c448d969c9a831
---
gnu/packages/python-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 4b35f11eec..de9b5c1a49 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -34521,6 +34521,42 @@ (define-public python-jaconv
Katakana, Hankaku (half-width character) and Zenkaku (full-width character)")
(license license:expat)))
+(define-public python-pykakasi
+ (package
+ (name "python-pykakasi")
+ (version "2.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pykakasi" version))
+ (sha256
+ (base32 "18dhcw7myw5idajnfynjbvqxmyf9m0cygfwsavbbi7zmcf72l1gs"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags '(list "-k"
+ (string-append
+ ;; Disable benchmarks.
+ "not test_benchmark"
+ " and not pytest_benchmark_update_machine_info"
+ " and not pytest_benchmark_update_json"
+ ;; Fails with AssertionError
+ " and not test_aozora"))))
+ (propagated-inputs (list python-jaconv python-deprecated))
+ (native-inputs (list python-py-cpuinfo
+ python-pytest
+ python-pytest-benchmark
+ python-setuptools
+ python-setuptools-scm
+ python-wheel))
+ (home-page "https://codeberg.org/miurahr/pykakasi")
+ (synopsis "Convert Japanese Kana-kanji sentences into Kana-Roman")
+ (description
+ "This is a Python Natural Language Processing (NLP) library to
+transliterate hiragana, katakana and kanji (Japanese text) into
+rōmaji (Latin/Roman alphabet). It can handle characters in NFC form.")
+ (license license:gpl2)))
+
(define-public python-flufl-lock
(package
(name "python-flufl-lock")
--
2.48.1
45mg wrote 5 days ago
[PATCH v2 08/13] gnu: Add python-syncedlyrics.
(name . 45mg)(address . 45mg.writes@gmail.com)(address . 76746@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
a1a801cca64e6c3fa2c4a24950a4f46419b44ae6.1741702573.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (python-syncedlyrics): New variable.

Change-Id: I07915603eb234ca7952c3a682510f96e4d634f10
---
gnu/packages/python-web.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index ac3ee99609..dec3b7d7ba 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -10695,6 +10695,31 @@ (define-public python-shopifyapi
list, create, update, or delete resources (e.g. Order, Product, Collection).")
(license license:expat)))
+(define-public python-syncedlyrics
+ (package
+ (name "python-syncedlyrics")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "syncedlyrics" version))
+ (sha256
+ (base32 "1c361xwxzcxq1vz2wilva8hr2x5s8kgidsxldgcxavasxmlj9crx"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-poetry-core python-setuptools python-wheel))
+ (propagated-inputs (list python-beautifulsoup4
+ python-requests
+ python-rapidfuzz))
+ (arguments
+ (list
+ #:tests? #f)) ;Tests require network
+ (home-page "https://github.com/moehmeni/syncedlyrics")
+ (synopsis "Library to fetch lyrics from common online lyrics providers")
+ (description
+ "A Python 3 library to get LRC format synchronized lyrics for your
+music.")
+ (license license:expat)))
+
(define-public python-whatthepatch
(package
(name "python-whatthepatch")
--
2.48.1
45mg wrote 5 days ago
[PATCH v2 05/13] gnu: Add python-dacite.
(name . 45mg)(address . 45mg.writes@gmail.com)(address . 76746@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
d5cd44e82b20a83038e0c5e59565842b0763d14f.1741702572.git.45mg.writes@gmail.com
* gnu/packages/python-xyz.scm (python-dacite): New variable.

Change-Id: Id70254ff672871c2ecdd59c648b9107f92c1454d
---
gnu/packages/python-xyz.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index db105cd427..f74b020f6d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -33980,6 +33980,38 @@ (define-public python-dictpath
accessor layer.")
(license license:asl2.0)))
+(define-public python-dacite
+ (package
+ (name "python-dacite")
+ (version "1.9.2")
+ (source
+ (origin
+ (method git-fetch) ;tests not properly included in PyPI
+ (uri (git-reference
+ (url "https://github.com/konradhalas/dacite")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1maananph172vi3v919zryhn9hswhcjb8w3srknkd4b9y1dfl0wq"))))
+ (build-system pyproject-build-system)
+ (arguments
+ ;; Disable benchmarks.
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'patch-pyproject-remove-benchmarks
+ (lambda _
+ (substitute* "pyproject.toml"
+ (("--benchmark-autosave --benchmark-json=benchmark.json")
+ "")))))
+ #:test-flags '("--ignore=tests/performance")))
+ (native-inputs (list python-pytest python-pytest-benchmark
+ python-setuptools python-wheel))
+ (home-page "https://github.com/konradhalas/dacite")
+ (synopsis "Python 3 module to simplify creation of data classes from
+dictionaries")
+ (description "This Python 3 module simplifies creation of data
+classes (PEP 557) from dictionaries.")
+ (license license:expat)))
+
(define-public pyzo
(package
(name "pyzo")
--
2.48.1
45mg wrote 5 days ago
[PATCH v2 09/13] gnu: Add python-soundcloud-v2.
(name . 45mg)(address . 45mg.writes@gmail.com)(address . 76746@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
14207ba0d709b563395478e8ee16af5be096b0d7.1741702573.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (python-soundcloud-v2): New variable.

Change-Id: I6126d879bb6f44155e61e6eaed2cc9fe51c4103e
---
gnu/packages/python-web.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index dec3b7d7ba..ff8469fd61 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -10720,6 +10720,31 @@ (define-public python-syncedlyrics
music.")
(license license:expat)))
+(define-public python-soundcloud-v2
+ (package
+ (name "python-soundcloud-v2")
+ (version "1.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "soundcloud-v2" version))
+ (sha256
+ (base32 "0hw2wxrg0rgj0x1ccy0lz0rws39byzs1din1573rxz0gdha169a6"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-poetry-core python-setuptools python-wheel))
+ (propagated-inputs (list python-dacite
+ python-dateutil
+ python-rapidfuzz
+ python-requests))
+ (arguments
+ (list #:tests? #f)) ;Tests require network
+ (home-page "https://github.com/7x11x13/soundcloud.py")
+ (synopsis "Unofficial wrapper for internal v2 SoundCloud API")
+ (description
+ "A Python wrapper for some of the internal v2 SoundCloud API (read/GET
+only methods). Does not require an API key.")
+ (license license:expat)))
+
(define-public python-whatthepatch
(package
(name "python-whatthepatch")
--
2.48.1
45mg wrote 5 days ago
[PATCH v2 10/13] gnu: Add python-ytmusicapi.
(name . 45mg)(address . 45mg.writes@gmail.com)(address . 76746@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
3e973726276dc9e629be701b2026c2528c8a831e.1741702573.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (python-ytmusicapi): New variable.

Change-Id: I97f4ea045f0ebb82cc2690d71a126988367e273d
---
gnu/packages/python-web.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index ff8469fd61..cc8362327f 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -10745,6 +10745,32 @@ (define-public python-soundcloud-v2
only methods). Does not require an API key.")
(license license:expat)))
+(define-public python-ytmusicapi
+ (package
+ (name "python-ytmusicapi")
+ (version "1.10.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ytmusicapi" version))
+ (sha256
+ (base32 "1yb95pv3jxbmg43lv92ll6741nzlsksixxlnggs6prqn352qa9l1"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest
+ python-setuptools
+ python-setuptools-scm
+ python-wheel))
+ (propagated-inputs (list python-requests))
+ (arguments
+ '(#:tests? #f)) ;tests require network
+ (home-page "https://github.com/sigma67/ytmusicapi")
+ (synopsis "Python 3 library for the YouTube Music API")
+ (description
+ "This is a Python 3 library to send requests to the YouTube Music API. It
+emulates YouTube Music web client requests using the user’s cookie data for
+authentication.")
+ (license license:expat)))
+
(define-public python-whatthepatch
(package
(name "python-whatthepatch")
--
2.48.1
45mg wrote 5 days ago
[PATCH v2 11/13] gnu: Add python-pytube.
(name . 45mg)(address . 45mg.writes@gmail.com)(address . 76746@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
f4d5f3d62a88b1120c5dc82eff6d18c981921e75.1741702573.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (python-pytube): New variable.

Change-Id: Ie2b342a884b4694a0dc8a0c959a918e4b0ab25b3
---
gnu/packages/python-web.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index cc8362327f..5355eaa3fe 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -10771,6 +10771,36 @@ (define-public python-ytmusicapi
authentication.")
(license license:expat)))
+(define-public python-pytube
+ (package
+ (name "python-pytube")
+ (version "15.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pytube/pytube")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ "1598764vnzhc5s4w1car5sci3fmf8lp3rflsysb76f794ms35vvd")))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools python-wheel))
+ (arguments
+ '(#:test-flags ;Disable network-dependent tests.
+ '("--ignore=tests/test_extract.py"
+ "--ignore=tests/test_query.py"
+ "--ignore=tests/test_streams.py"
+ "--ignore=tests/test_main.py"
+ "-k"
+ "not test_streaming")))
+ (home-page "https://github.com/pytube/pytube")
+ (synopsis "Library and utility for downloading YouTube videos")
+ (description
+ "This is a lightweight, dependency-free Python 3 library (and
+command-line utility) for downloading YouTube videos.")
+ (license license:unlicense)))
+
(define-public python-whatthepatch
(package
(name "python-whatthepatch")
--
2.48.1
45mg wrote 5 days ago
[PATCH v2 12/13] gnu: Add python-spotipy.
(name . 45mg)(address . 45mg.writes@gmail.com)(address . 76746@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
c430920e6bc0de3fa9648b157e23bde6f09a1491.1741702573.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (python-spotipy): New variable.

Change-Id: Id1d2a46997eb1dab9be6951a1b2d9f5a43083863
---
gnu/packages/python-web.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 5355eaa3fe..1aab6094be 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -10801,6 +10801,29 @@ (define-public python-pytube
command-line utility) for downloading YouTube videos.")
(license license:unlicense)))
+(define-public python-spotipy
+ (package
+ (name "python-spotipy")
+ (version "2.24.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "spotipy" version))
+ (sha256
+ (base32 "03gg9631nrgsq7daj6w70na77ha2wzghq9spy4d5b1i0chgghsir"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-redis python-requests python-urllib3))
+ (native-inputs (list python-pytest python-setuptools python-wheel))
+ (arguments
+ '(#:tests? #f)) ;tests require network
+ (home-page "https://spotipy.readthedocs.io/en/2.25.0/")
+ (synopsis "Python library for the Spotify Web API")
+ (description
+ "Spotipy is a lightweight Python library for the Spotify Web API. It aims
+to provide full access to all of the music data provided by the Spotify
+platform.")
+ (license license:expat)))
+
(define-public python-whatthepatch
(package
(name "python-whatthepatch")
--
2.48.1
45mg wrote 5 days ago
[PATCH v2 13/13] gnu: Add spotify-downloader.
(name . 45mg)(address . 45mg.writes@gmail.com)(address . 76746@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
48ba853f78eb1760f68439d7a8011b88c1fb4d5c.1741702573.git.45mg.writes@gmail.com
* gnu/packages/python-web.scm (spotify-downloader): New variable.

Change-Id: I5ab889b33a10beb14545030ee75bd38a1663cc28
---
gnu/packages/python-web.scm | 85 +++++++++++++++++++++++++++++++++++++
1 file changed, 85 insertions(+)

Toggle diff (112 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 1aab6094be..8c1270db28 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -117,6 +117,7 @@ (define-module (gnu packages python-web)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages music)
#:use-module (gnu packages node)
#:use-module (gnu packages openstack)
#:use-module (gnu packages pcre)
@@ -139,6 +140,7 @@ (define-module (gnu packages python-web)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
+ #:use-module (gnu packages video)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
@@ -10824,6 +10826,89 @@ (define-public python-spotipy
platform.")
(license license:expat)))
+(define-public spotify-downloader
+ (package
+ (name "spotify-downloader")
+ (version "4.2.11")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/spotDL/spotify-downloader")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ "18lwimvld07ywzmzffg18j7dpllyk1335x786yhjzldlhx1akmhn")))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list ffmpeg
+ python-beautifulsoup4
+ python-fastapi
+ python-mutagen
+ python-platformdirs
+ python-pydantic-2
+ python-pykakasi
+ python-slugify
+ python-pytube
+ python-rapidfuzz
+ python-requests-next
+ python-rich
+ python-soundcloud-v2
+ python-spotipy
+ python-syncedlyrics
+ python-uvicorn
+ python-websockets-14
+ python-ytmusicapi
+ yt-dlp))
+ (native-inputs (list nss-certs-for-test
+ python-poetry-core
+ python-pytest
+ python-pytest-mock
+ python-pytest-subprocess
+ python-pytest-vcr
+ python-setuptools
+ python-wheel))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; XXX: We use later versions of uvicorn and fastapi, since it proved
+ ;; too difficult to package the older ones. Note that these packages
+ ;; are network-related, and we disable network-related tests...
+ (add-after 'unpack 'use-later-versions
+ (lambda _
+ (substitute* "pyproject.toml"
+ (("^fastapi = \"\\^0.103.0\"")
+ "fastapi = \"^0.115.0\"")
+ (("^uvicorn = \"\\^0.23.2\"")
+ "uvicorn = \"^0.34.0\""))))
+ (add-before 'check 'set-HOME
+ ;; Some tests need this
+ (lambda _ (setenv "HOME" "/tmp"))))
+ #:test-flags
+ ;; Disable network dependent tests.
+ (list "--ignore=tests/test_init.py"
+ "--ignore=tests/test_matching.py"
+ "--ignore=tests/providers/lyrics"
+ "--ignore=tests/types"
+ "--ignore=tests/utils/test_github.py"
+ "--ignore=tests/utils/test_m3u.py"
+ "--ignore=tests/utils/test_metadata.py"
+ "--ignore=tests/utils/test_search.py"
+ "-k"
+ ,(string-append "not test_convert"
+ " and not test_download_ffmpeg"
+ " and not test_download_song"
+ " and not test_preload_song"
+ " and not test_yt_get_results"
+ " and not test_yt_search"
+ " and not test_ytm_search"
+ " and not test_ytm_get_results"))))
+ (home-page "https://github.com/spotDL/spotify-downloader")
+ (synopsis "Download Spotify songs from YouTube")
+ (description
+ "spotDL finds songs from Spotify on YouTube and downloads them - along
+with album art, lyrics and metadata.")
+ (license license:expat)))
+
(define-public python-whatthepatch
(package
(name "python-whatthepatch")
--
2.48.1
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 76746@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 76746
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help