22 lines
490 B
Python
22 lines
490 B
Python
from dataclasses import dataclass
|
|
from pathlib import Path
|
|
from typing import Optional, Tuple
|
|
|
|
from serato_doctor.models.track import DiskTrack
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class BrokenSymlink:
|
|
"""A symbolic link whose target cannot be resolved."""
|
|
|
|
path: Path
|
|
target: Optional[Path]
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class FilesystemScan:
|
|
"""Read-only findings from one traversal of a music folder."""
|
|
|
|
tracks: Tuple[DiskTrack, ...]
|
|
broken_symlinks: Tuple[BrokenSymlink, ...]
|