From 90ca0a799ac60a2b2f5a67281d715c4303664564 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0ar=C5=ABnas=20Nejus?= Date: Thu, 9 Oct 2025 04:36:03 +0100 Subject: [PATCH] Consider unseen tracks in data source matching --- beets/autotag/distance.py | 9 ++------- docs/plugins/index.rst | 5 ----- test/autotag/test_distance.py | 2 +- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/beets/autotag/distance.py b/beets/autotag/distance.py index 123f4b788..e5ec2debb 100644 --- a/beets/autotag/distance.py +++ b/beets/autotag/distance.py @@ -409,9 +409,7 @@ def track_distance( dist.add_expr("medium", item.disc != track_info.medium) # Plugins. - if (original := item.get("data_source")) and ( - actual := track_info.data_source - ) != original: + if (actual := track_info.data_source) != item.get("data_source"): dist.add("data_source", metadata_plugins.get_penalty(actual)) return dist @@ -529,9 +527,6 @@ def distance( dist.add("unmatched_tracks", 1.0) # Plugins. - if ( - likelies["data_source"] - and (data_source := album_info.data_source) != likelies["data_source"] - ): + if (data_source := album_info.data_source) != likelies["data_source"]: dist.add("data_source", metadata_plugins.get_penalty(data_source)) return dist diff --git a/docs/plugins/index.rst b/docs/plugins/index.rst index bf5106e9a..a877d2320 100644 --- a/docs/plugins/index.rst +++ b/docs/plugins/index.rst @@ -61,11 +61,6 @@ databases. They share the following configuration options: candidate comes from a different data source than what appears to be the original source of your music collection. - .. important:: - - This setting only applies to reimports, not to first-time imports, since - ``data_source`` is unknown for new files. - **Example configurations:** .. code-block:: yaml diff --git a/test/autotag/test_distance.py b/test/autotag/test_distance.py index 72922470b..91003bbb9 100644 --- a/test/autotag/test_distance.py +++ b/test/autotag/test_distance.py @@ -330,7 +330,7 @@ class TestDataSourceDistance: _p("Original", "Other", 0.5, 1.0, MISMATCH, id="mismatch"), _p("Original", "unknown", 0.5, 1.0, MISMATCH, id="mismatch-unknown"), # noqa: E501 _p("Original", None, 0.5, 1.0, MISMATCH, id="mismatch-no-info"), - _p(None, "Other", 0.5, 1.0, MATCH, id="match-no-original"), + _p(None, "Other", 0.5, 1.0, MISMATCH, id="mismatch-no-original"), _p("unknown", "unknown", 0.5, 1.0, MATCH, id="match-unknown"), _p("Original", "Other", 1.0, 1.0, 0.25, id="mismatch-max-penalty"), _p("Original", "Other", 0.5, 5.0, 0.3125, id="mismatch-high-weight"), # noqa: E501