Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.maint.python > #17256

Review of the beets RFS

Path csiph.com!fu-berlin.de!bofh.it!news.nic.it!robomod
From Louis-Philippe Véronneau <pollo@debian.org>
Newsgroups linux.debian.maint.python
Subject Review of the beets RFS
Date Sat, 06 Dec 2025 20:50:01 +0100
Message-ID <LZ6s1-RuU-7@gated-at.bofh.it> (permalink)
X-Original-To Pieter Lenaerts <plenae@disroot.org>
X-Mailbox-Line From debian-python-request@lists.debian.org Sat Dec 6 19:43:16 2025
Old-Return-Path <pollo@debian.org>
X-Amavis-Spam-Status No, score=-108.01 tagged_above=-10000 required=5.3 tests=[BAYES_00=-2, BODY_8BITS=1.5, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, LDO_WHITELIST=-5, RCVD_IN_DNSWL_MED=-2.3, UNPARSEABLE_RELAY=0.001, USER_IN_DKIM_WELCOMELIST=-0.01, USER_IN_DKIM_WHITELIST=-100] autolearn=ham autolearn_force=no
MIME-Version 1.0
User-Agent Mozilla Thunderbird
Content-Language en-US
Autocrypt addr=pollo@debian.org; keydata= xjMEYEPdjBYJKwYBBAHaRw8BAQdA5yh8SOHhcvKeX/A4rv0/JTCL8Kgnnwy4/okKh1Htbs3N LExvdWlzLVBoaWxpcHBlIFbDqXJvbm5lYXUgPHBvbGxvQGRlYmlhbi5vcmc+wpYEExYKAD4C GwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AWIQT2TWHTIfPLSJFWdT3h5UV8i61BEwUCZb/f iAUJDuIDfAAKCRDh5UV8i61BEzdaAP0cGJp8CpkywzefhdaJjfK5/uAQLRg5Bk6yCWnyR8B4 wQEAxA4C39PJPsosgOVBMdfkzCPhGVynYBnujOyEcksX1w/OOARgQ+DlEgorBgEEAZdVAQUB AQdAgRLbDfS/6GLXd15qI9zHso9UwJQgDbme7pvL1Z9rkG4DAQgHwn4EGBYKACYCGwwWIQT2 TWHTIfPLSJFWdT3h5UV8i61BEwUCZb/fsAUJDuIASgAKCRDh5UV8i61BEwYaAQDhvbQQqmTD F/fdodzfiY45IWYckb9rCvKaVnfP6DOY9QEA/eeaEWmOq2NpOYpBesVjBZCLe8jKv1WPMfLL YOfDIAc=
Content-Type text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding 8bit
X-Debian-User pollo
X-Mailing-List <debian-python@lists.debian.org> archive/latest/23492
List-ID <debian-python.lists.debian.org>
List-URL <https://lists.debian.org/debian-python/>
List-Archive https://lists.debian.org/msgid-search/cde433b6-3b57-4d39-bfc8-4a834bc8fdd5@debian.org
Approved robomod@news.nic.it
Lines 105
Organization linux.* mail to news gateway
Sender robomod@news.nic.it
X-Original-Cc "debian-python@lists.debian.org" <debian-python@lists.debian.org>
X-Original-Date Sat, 6 Dec 2025 14:42:54 -0500
X-Original-Message-ID <cde433b6-3b57-4d39-bfc8-4a834bc8fdd5@debian.org>
Xref csiph.com linux.debian.maint.python:17256

Show key headers only | View raw


Hello!

I had a look at your RFS for beets. I don't have any comments on the changes you did, but sadly, the package FTBFS with Python 3.14.

I get the following error:

==================================================================
______________ TestTranslation.test_translate[already translated]

self = <test.plugins.test_lyrics.TestTranslation object at 0x7f92ef0d69e0>
new_lyrics = 'Some lyrics', old_lyrics = 'Some lyrics / Some translation'
expected = 'Some lyrics / Some translation'

     @pytest.mark.parametrize(
         "new_lyrics, old_lyrics, expected",
         [
             pytest.param(
                 """
                 [Refrain: Doja Cat]
                 Hard for me to let you go (Let you go, let you go)
                 My body wouldn't let me hide it (Hide it)
                 No matter what, I wouldn't fold (Wouldn't fold, wouldn't fold)
                 Ridin' through the thunder, lightnin'""",
                 "",
                 """
                 [Refrain: Doja Cat] / [Refrain : Doja Cat]
                 Hard for me to let you go (Let you go, let you go) / Difficile pour moi de te laisser partir (Te laisser partir, te laisser partir)
                 My body wouldn't let me hide it (Hide it) / Mon corps ne me laissait pas le cacher (Cachez-le)
                 No matter what, I wouldn't fold (Wouldn't fold, wouldn't fold) / Quoi qu’il arrive, je ne plierais pas (Ne plierait pas, ne plierais pas)
                 Ridin' through the thunder, lightnin' / Chevauchant à travers le tonnerre, la foudre""",  # noqa: E501
                 id="plain",
             ),
             pytest.param(
                 """
                 [00:00.00] Some synced lyrics
                 [00:00:50]
                 [00:01.00] Some more synced lyrics
     
                 Source: https://lrclib.net/api/123""",
                 "",
                 """
                 [00:00.00] Some synced lyrics / Quelques paroles synchronisées
                 [00:00:50]
                 [00:01.00] Some more synced lyrics / Quelques paroles plus synchronisées
     
                 Source: https://lrclib.net/api/123""",  # noqa: E501
                 id="synced",
             ),
             pytest.param(
                 "Quelques paroles",
                 "",
                 "Quelques paroles",
                 id="already in the target language",
             ),
             pytest.param(
                 "Some lyrics",
                 "Some lyrics / Some translation",
                 "Some lyrics / Some translation",
                 id="already translated",
             ),
         ],
     )
     def test_translate(self, new_lyrics, old_lyrics, expected):
         plugin = lyrics.LyricsPlugin()
         bing = lyrics.Translator(plugin._log, "123", "FR", ["EN"])
     
>       assert bing.translate(
             textwrap.dedent(new_lyrics), old_lyrics
         ) == textwrap.dedent(expected)

test/plugins/test_lyrics.py:631:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Translator(_log=<BeetsLogger beets.lyrics (DEBUG)>, api_key='123', to_language='FR', from_languages=['EN'])
new_lyrics = 'Some lyrics', old_lyrics = 'Some lyrics / Some translation'

     def translate(self, new_lyrics: str, old_lyrics: str) -> str:
         """Translate the given lyrics to the target language.
     
         Check old lyrics for existing translations and return them if their
         original text matches the new lyrics. This is to avoid translating
         the same lyrics multiple times.
     
         If the lyrics are already in the target language or not in any of
         of the source languages (if configured), they are returned as is.
     
         The footer with the source URL is preserved, if present.
         """
         if (
             " / " in old_lyrics
>           and self.remove_translations(old_lyrics) == new_lyrics
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         ):
E       TypeError: 'str' object cannot be interpreted as an integer

beetsplug/lyrics.py:832: TypeError
==================================================================

As such, I've removed beets from the list for now. Feel free to add it again once the issue is fixed!

-- 
   ⢀⣴⠾⠻⢶⣦⠀
   ⣾⠁⢠⠒⠀⣿⡁  Louis-Philippe Véronneau
   ⢿⡄⠘⠷⠚⠋   pollo@debian.org / veronneau.org
   ⠈⠳⣄

Back to linux.debian.maint.python | Previous | NextNext in thread | Find similar


Thread

Review of the beets RFS Louis-Philippe Véronneau <pollo@debian.org> - 2025-12-06 20:50 +0100
  Bug#1119062: Review of the beets RFS Pieter Lenaerts <plenae@disroot.org> - 2025-12-07 07:50 +0100
    Bug#1119062: RFS: beets/2.5.1-1 [ITA] -- music tagger and library organizer Nicholas D Steeves <sten@debian.org> - 2025-12-20 22:50 +0100
      Bug#1119062: RFS: beets/2.5.1-1 [ITA] -- music tagger and library organizer Pieter Lenaerts <plenae@disroot.org> - 2025-12-21 19:00 +0100

csiph-web