from dataclasses import dataclass from pathlib import Path from typing import Optional, Tuple @dataclass(frozen=True) class DatabaseTrack: """Read-only metadata extracted from one database V2 track record.""" path: Path filename: str title: Optional[str] = None artist: Optional[str] = None album: Optional[str] = None genre: Optional[str] = None @dataclass(frozen=True) class SeratoDatabase: path: Path version: Optional[str] tracks: Tuple[DatabaseTrack, ...]