refactor: rename config env vars and default config path to songtrace

This commit is contained in:
2026-07-27 18:21:30 -07:00
parent 8a87534c5d
commit 5553614fdf
4 changed files with 11 additions and 11 deletions
+1 -1
View File
@@ -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
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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"
+6 -6
View File
@@ -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"))