From 91b9734d4ce2653775e94d70a71163552f5fa3c8 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 9 Dec 2019 12:24:56 +0100 Subject: [PATCH 1/4] Make PRESERVED_TAGS a tuple rather than a list --- picard/util/tags.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/picard/util/tags.py b/picard/util/tags.py index 718f78add..511ff495b 100644 --- a/picard/util/tags.py +++ b/picard/util/tags.py @@ -107,10 +107,17 @@ TAG_NAMES = { 'r128_track_gain': N_('R128 Track Gain'), } -PRESERVED_TAGS = [ - "~bitrate", "~bits_per_sample", "~format", "~channels", "~sample_rate", - "~dirname", "~filename", "~extension", "~video", -] +PRESERVED_TAGS = ( + '~bitrate', + '~bits_per_sample', + '~channels', + '~dirname', + '~extension', + '~filename', + '~format', + '~sample_rate', + '~video', +) def display_tag_name(name): From 6f251adc355310e51679554cf48c22e97ab759f4 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 9 Dec 2019 12:26:54 +0100 Subject: [PATCH 2/4] Sort TAG_NAMES dict by key in source code --- picard/util/tags.py | 140 ++++++++++++++++++++++---------------------- 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/picard/util/tags.py b/picard/util/tags.py index 511ff495b..1a2d68ba3 100644 --- a/picard/util/tags.py +++ b/picard/util/tags.py @@ -18,93 +18,93 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. TAG_NAMES = { - 'album': N_('Album'), - 'artist': N_('Artist'), - 'title': N_('Title'), - 'date': N_('Date'), - 'originaldate': N_('Original Release Date'), - 'originalyear': N_('Original Year'), - 'albumartist': N_('Album Artist'), - 'tracknumber': N_('Track Number'), - 'totaltracks': N_('Total Tracks'), - 'discnumber': N_('Disc Number'), - 'totaldiscs': N_('Total Discs'), - 'albumartistsort': N_('Album Artist Sort Order'), - 'artistsort': N_('Artist Sort Order'), - 'titlesort': N_('Title Sort Order'), - 'albumsort': N_('Album Sort Order'), - 'composersort': N_('Composer Sort Order'), - 'asin': N_('ASIN'), - 'grouping': N_('Grouping'), - 'isrc': N_('ISRC'), - 'mood': N_('Mood'), - 'bpm': N_('BPM'), - 'key': N_('Key'), - 'copyright': N_('Copyright'), - 'license': N_('License'), - 'composer': N_('Composer'), - 'writer': N_('Writer'), - 'conductor': N_('Conductor'), - 'lyricist': N_('Lyricist'), - 'arranger': N_('Arranger'), - 'producer': N_('Producer'), - 'engineer': N_('Engineer'), - 'subtitle': N_('Subtitle'), - 'discsubtitle': N_('Disc Subtitle'), - 'remixer': N_('Remixer'), - 'musicbrainz_recordingid': N_('MusicBrainz Recording Id'), - 'musicbrainz_trackid': N_('MusicBrainz Track Id'), - 'musicbrainz_albumid': N_('MusicBrainz Release Id'), - 'musicbrainz_artistid': N_('MusicBrainz Artist Id'), - 'musicbrainz_albumartistid': N_('MusicBrainz Release Artist Id'), - 'musicbrainz_workid': N_('MusicBrainz Work Id'), - 'musicbrainz_releasegroupid': N_('MusicBrainz Release Group Id'), - 'musicbrainz_discid': N_('MusicBrainz Disc Id'), - 'musicip_puid': N_('MusicIP PUID'), - 'musicip_fingerprint': N_('MusicIP Fingerprint'), - 'acoustid_id': N_('AcoustID'), 'acoustid_fingerprint': N_('AcoustID Fingerprint'), - 'discid': N_('Disc Id'), - 'website': N_('Artist Website'), - 'compilation': N_('Compilation (iTunes)'), + 'acoustid_id': N_('AcoustID'), + 'albumartist': N_('Album Artist'), + 'albumartistsort': N_('Album Artist Sort Order'), + 'album': N_('Album'), + 'albumsort': N_('Album Sort Order'), + 'arranger': N_('Arranger'), + 'artist': N_('Artist'), + 'artists': N_('Artists'), + 'artistsort': N_('Artist Sort Order'), + 'asin': N_('ASIN'), + 'barcode': N_('Barcode'), + 'bpm': N_('BPM'), + 'catalognumber': N_('Catalog Number'), 'comment:': N_('Comment'), - 'genre': N_('Genre'), + 'compilation': N_('Compilation (iTunes)'), + 'composer': N_('Composer'), + 'composersort': N_('Composer Sort Order'), + 'conductor': N_('Conductor'), + 'copyright': N_('Copyright'), + 'date': N_('Date'), + 'discid': N_('Disc Id'), + 'discnumber': N_('Disc Number'), + 'discsubtitle': N_('Disc Subtitle'), + 'djmixer': N_('DJ-Mixer'), 'encodedby': N_('Encoded By'), 'encodersettings': N_('Encoder Settings'), - 'performer:': N_('Performer'), - 'releasetype': N_('Release Type'), - 'releasestatus': N_('Release Status'), - 'releasecountry': N_('Release Country'), + 'engineer': N_('Engineer'), + 'genre': N_('Genre'), + 'grouping': N_('Grouping'), + 'isrc': N_('ISRC'), + 'key': N_('Key'), 'label': N_('Record Label'), - 'barcode': N_('Barcode'), - 'catalognumber': N_('Catalog Number'), - 'djmixer': N_('DJ-Mixer'), - 'media': N_('Media'), - 'lyrics': N_('Lyrics'), - 'mixer': N_('Mixer'), 'language': N_('Language'), - 'script': N_('Script'), '~length': N_('Length'), - '~rating': N_('Rating'), - 'artists': N_('Artists'), - 'work': N_('Work'), + 'license': N_('License'), + 'lyricist': N_('Lyricist'), + 'lyrics': N_('Lyrics'), + 'media': N_('Media'), + 'mixer': N_('Mixer'), + 'mood': N_('Mood'), 'movement': N_('Movement'), 'movementnumber': N_('Movement Number'), 'movementtotal': N_('Movement Count'), - 'showmovement': N_('Show Work & Movement'), - 'originalartist': N_('Original Artist'), - 'musicbrainz_originalartistid': N_('MusicBrainz Original Artist Id'), - 'originalalbum': N_('Original Album'), + 'musicbrainz_albumartistid': N_('MusicBrainz Release Artist Id'), + 'musicbrainz_albumid': N_('MusicBrainz Release Id'), + 'musicbrainz_artistid': N_('MusicBrainz Artist Id'), + 'musicbrainz_discid': N_('MusicBrainz Disc Id'), 'musicbrainz_originalalbumid': N_('MusicBrainz Original Release Id'), + 'musicbrainz_originalartistid': N_('MusicBrainz Original Artist Id'), + 'musicbrainz_recordingid': N_('MusicBrainz Recording Id'), + 'musicbrainz_releasegroupid': N_('MusicBrainz Release Group Id'), + 'musicbrainz_trackid': N_('MusicBrainz Track Id'), + 'musicbrainz_workid': N_('MusicBrainz Work Id'), + 'musicip_fingerprint': N_('MusicIP Fingerprint'), + 'musicip_puid': N_('MusicIP PUID'), + 'originalalbum': N_('Original Album'), + 'originalartist': N_('Original Artist'), + 'originaldate': N_('Original Release Date'), + 'originalyear': N_('Original Year'), + 'performer:': N_('Performer'), + 'producer': N_('Producer'), + 'r128_album_gain': N_('R128 Album Gain'), + 'r128_track_gain': N_('R128 Track Gain'), + '~rating': N_('Rating'), + 'releasecountry': N_('Release Country'), + 'releasestatus': N_('Release Status'), + 'releasetype': N_('Release Type'), + 'remixer': N_('Remixer'), 'replaygain_album_gain': N_('ReplayGain Album Gain'), 'replaygain_album_peak': N_('ReplayGain Album Peak'), 'replaygain_album_range': N_('ReplayGain Album Range'), + 'replaygain_reference_loudness': N_('ReplayGain Reference Loudness'), 'replaygain_track_gain': N_('ReplayGain Track Gain'), 'replaygain_track_peak': N_('ReplayGain Track Peak'), 'replaygain_track_range': N_('ReplayGain Track Range'), - 'replaygain_reference_loudness': N_('ReplayGain Reference Loudness'), - 'r128_album_gain': N_('R128 Album Gain'), - 'r128_track_gain': N_('R128 Track Gain'), + 'script': N_('Script'), + 'showmovement': N_('Show Work & Movement'), + 'subtitle': N_('Subtitle'), + 'title': N_('Title'), + 'titlesort': N_('Title Sort Order'), + 'totaldiscs': N_('Total Discs'), + 'totaltracks': N_('Total Tracks'), + 'tracknumber': N_('Track Number'), + 'website': N_('Artist Website'), + 'work': N_('Work'), + 'writer': N_('Writer'), } PRESERVED_TAGS = ( From e529ee7d715ee6421143d3082ad46e61410f7c79 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 9 Dec 2019 12:48:24 +0100 Subject: [PATCH 3/4] Test display_tag_name() when name contains multiple double dot separators --- test/test_utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test/test_utils.py b/test/test_utils.py index 68dcd775b..b180d4f36 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -114,6 +114,7 @@ class TagsTest(PicardTestCase): self.assertEqual(dtn('tag'), 'tag') self.assertEqual(dtn('tag:desc'), 'tag [desc]') self.assertEqual(dtn('tag:'), 'tag') + self.assertEqual(dtn('tag:de:sc'), 'tag [de:sc]') self.assertEqual(dtn('originalyear'), 'Original Year') self.assertEqual(dtn('originalyear:desc'), 'Original Year [desc]') self.assertEqual(dtn('~length'), 'Length') From 4090d68c3f7e3f5ed24b12db0fa4ff5210b5e4e4 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 9 Dec 2019 12:50:00 +0100 Subject: [PATCH 4/4] Simplify display_tag_name() There is no key ending with ':' in TAG_NAMES, so TAG_NAMES.get(name + ':', something) will always return something --- picard/util/tags.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/picard/util/tags.py b/picard/util/tags.py index 1a2d68ba3..aee2e0c0f 100644 --- a/picard/util/tags.py +++ b/picard/util/tags.py @@ -121,11 +121,8 @@ PRESERVED_TAGS = ( def display_tag_name(name): - desc = '' if ':' in name: name, desc = name.split(':', 1) - name = TAG_NAMES.get(name + ':', TAG_NAMES.get(name, name)) - if desc: - return '%s [%s]' % (_(name), desc) - else: - return _(name) + if desc: + return '%s [%s]' % (_(TAG_NAMES.get(name, name)), desc) + return _(TAG_NAMES.get(name, name))