d3bec2ee10
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
17 lines
554 B
Python
17 lines
554 B
Python
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)
|