diff --git a/Dockerfile b/Dockerfile index 78ba9e2..6adef90 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ COPY pyproject.toml ./ COPY src ./src RUN pip install --no-cache-dir . -ENV KARAOKE_MAKER_CONFIG=/config/config.toml \ +ENV SONGTRACE_CONFIG=/config/config.toml \ TORCH_HOME=/data/models \ XDG_CACHE_HOME=/data/models/cache diff --git a/src/songtrace/config.py b/src/songtrace/config.py index 7337cc5..5bea78d 100644 --- a/src/songtrace/config.py +++ b/src/songtrace/config.py @@ -12,7 +12,7 @@ class Config: whisper_api: str = "openai" output_dir: Path = Path("output") work_dir: Path = Path("work") - creator: str = "karaoke-maker" + creator: str = "songtrace" demucs_model: str = "htdemucs_ft" crepe_model: str = "full" device: str = "cuda" @@ -25,8 +25,8 @@ _PATH_FIELDS = {"output_dir", "work_dir"} def load_config(path: Path | None = None) -> Config: if path is None: - env = os.environ.get("KARAOKE_MAKER_CONFIG") - path = Path(env) if env else Path.home() / ".config/karaoke-maker/config.toml" + env = os.environ.get("SONGTRACE_CONFIG") + path = Path(env) if env else Path.home() / ".config/songtrace/config.toml" data = tomllib.loads(Path(path).read_text()) known = {f.name for f in fields(Config)} unknown = set(data) - known diff --git a/tests/test_config.py b/tests/test_config.py index d58e8d7..c5b9dba 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -24,7 +24,7 @@ def test_paths_and_overrides(tmp_path): def test_env_var(tmp_path, monkeypatch): cfg_file = tmp_path / "c.toml" cfg_file.write_text('whisper_url = "http://env/v1"\n') - monkeypatch.setenv("KARAOKE_MAKER_CONFIG", str(cfg_file)) + monkeypatch.setenv("SONGTRACE_CONFIG", str(cfg_file)) assert load_config().whisper_url == "http://env/v1" diff --git a/tests/test_e2e.py b/tests/test_e2e.py index d6d3fbe..14ce693 100644 --- a/tests/test_e2e.py +++ b/tests/test_e2e.py @@ -4,8 +4,8 @@ import shutil import pytest requires_full = pytest.mark.skipif( - not os.environ.get("KARAOKE_E2E"), - reason="set KARAOKE_E2E=1 (needs GPU, ffmpeg, whisper server, network)") + not os.environ.get("SONGTRACE_E2E"), + reason="set SONGTRACE_E2E=1 (needs GPU, ffmpeg, whisper server, network)") @requires_full def test_full_pipeline(tmp_path): @@ -16,10 +16,10 @@ def test_full_pipeline(tmp_path): cfg.output_dir = tmp_path / "out" cfg.work_dir = tmp_path / "work" inp = SongInput( - title=os.environ["KARAOKE_E2E_TITLE"], - artist=os.environ["KARAOKE_E2E_ARTIST"], - lyrics_text=open(os.environ["KARAOKE_E2E_LYRICS"]).read(), - youtube_url=os.environ.get("KARAOKE_E2E_URL"), + title=os.environ["SONGTRACE_E2E_TITLE"], + artist=os.environ["SONGTRACE_E2E_ARTIST"], + lyrics_text=open(os.environ["SONGTRACE_E2E_LYRICS"]).read(), + youtube_url=os.environ.get("SONGTRACE_E2E_URL"), ) result = run_pipeline(inp, cfg) txts = list(result.output_dir.glob("*.txt"))