from lyra_worker.types import Candidate, Quality def quality_class(q: Quality) -> int: """3 = hi-res lossless, 2 = CD lossless, 1 = lossy.""" if q.lossless: hires = (q.bit_depth is not None and q.bit_depth > 16) or ( q.sample_rate is not None and q.sample_rate > 44100 ) return 3 if hires else 2 return 1 def rank_key(c: Candidate) -> tuple[int, int]: """Sort key; larger is better. Quality class first, then source tier (from the adapter).""" return (quality_class(c.quality), -c.source_tier)