from dataclasses import dataclass from typing import Protocol @dataclass(frozen=True) class ProbeResult: artist: str album: str fmt: str quality_class: int class AudioProbe(Protocol): def probe(self, path: str) -> ProbeResult: """Read an audio file's artist/album tags + format/quality.""" ...