fix: normalize shared relative output paths

This commit is contained in:
mbsantiago 2026-05-06 19:11:55 +01:00
parent c4f759e9a3
commit d35866439b
2 changed files with 25 additions and 0 deletions

View File

@ -27,6 +27,10 @@ def make_path_relative(path: PathLike, audio_dir: PathLike) -> Path:
return path.relative_to(audio_dir) return path.relative_to(audio_dir)
audio_parts = audio_dir.parts
if audio_parts and path.parts[: len(audio_parts)] == audio_parts:
return Path(*path.parts[len(audio_parts) :])
return path return path

View File

@ -0,0 +1,21 @@
from pathlib import Path
from batdetect2.outputs.formats.base import make_path_relative
def test_make_path_relative_strips_shared_relative_prefix() -> None:
audio_dir = Path("example_data/audio")
path = Path("example_data/audio/subdir/clip.wav")
relative = make_path_relative(path, audio_dir)
assert relative == Path("subdir/clip.wav")
def test_make_path_relative_returns_dot_for_matching_relative_dir() -> None:
audio_dir = Path("example_data/audio")
path = Path("example_data/audio")
relative = make_path_relative(path, audio_dir)
assert relative == Path(".")