from dataclasses import dataclass from enum import Enum from pathlib import Path from typing import Tuple from serato_doctor.models.reference import TrackReference class CrateKind(str, Enum): STATIC = "static" SMART = "smart" UNKNOWN = "unknown" @dataclass(frozen=True) class Crate: """A Serato crate and the track references parsed from it.""" path: Path references: Tuple[TrackReference, ...] kind: CrateKind = CrateKind.UNKNOWN