refactor: make adapter .tier the single source of truth for ranking

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jonathan
2026-07-10 19:07:58 +02:00
parent fbd6a056a4
commit d3bec2ee10
6 changed files with 14 additions and 19 deletions
+2 -9
View File
@@ -1,7 +1,5 @@
from lyra_worker.types import Candidate, Quality
_SOURCE_TIERS = {"qobuz": 0, "soulseek": 1, "youtube": 2}
def quality_class(q: Quality) -> int:
"""3 = hi-res lossless, 2 = CD lossless, 1 = lossy."""
@@ -13,11 +11,6 @@ def quality_class(q: Quality) -> int:
return 1
def source_tier(source: str) -> int:
"""Lower is better. Unknown sources rank worst."""
return _SOURCE_TIERS.get(source, 99)
def rank_key(c: Candidate) -> tuple[int, int]:
"""Sort key; larger is better. Quality class first, then source tier."""
return (quality_class(c.quality), -source_tier(c.source))
"""Sort key; larger is better. Quality class first, then source tier (from the adapter)."""
return (quality_class(c.quality), -c.source_tier)