28 lines
662 B
Python
28 lines
662 B
Python
from dataclasses import dataclass
|
|
from pathlib import Path
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class TrackReference:
|
|
"""A track path referenced by a Serato crate."""
|
|
|
|
source: Path
|
|
path: Path
|
|
filename: str
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class ReferenceResult:
|
|
"""The filename-level reconciliation result for a crate reference."""
|
|
|
|
reference: TrackReference
|
|
exists_by_filename: bool
|
|
|
|
def as_row(self) -> dict:
|
|
return {
|
|
"crate": str(self.reference.source),
|
|
"serato_path": str(self.reference.path),
|
|
"filename": self.reference.filename,
|
|
"exists_by_filename": self.exists_by_filename,
|
|
}
|