refactor: rename config env vars and default config path to songtrace
This commit is contained in:
+1
-1
@@ -11,7 +11,7 @@ COPY pyproject.toml ./
|
|||||||
COPY src ./src
|
COPY src ./src
|
||||||
RUN pip install --no-cache-dir .
|
RUN pip install --no-cache-dir .
|
||||||
|
|
||||||
ENV KARAOKE_MAKER_CONFIG=/config/config.toml \
|
ENV SONGTRACE_CONFIG=/config/config.toml \
|
||||||
TORCH_HOME=/data/models \
|
TORCH_HOME=/data/models \
|
||||||
XDG_CACHE_HOME=/data/models/cache
|
XDG_CACHE_HOME=/data/models/cache
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ class Config:
|
|||||||
whisper_api: str = "openai"
|
whisper_api: str = "openai"
|
||||||
output_dir: Path = Path("output")
|
output_dir: Path = Path("output")
|
||||||
work_dir: Path = Path("work")
|
work_dir: Path = Path("work")
|
||||||
creator: str = "karaoke-maker"
|
creator: str = "songtrace"
|
||||||
demucs_model: str = "htdemucs_ft"
|
demucs_model: str = "htdemucs_ft"
|
||||||
crepe_model: str = "full"
|
crepe_model: str = "full"
|
||||||
device: str = "cuda"
|
device: str = "cuda"
|
||||||
@@ -25,8 +25,8 @@ _PATH_FIELDS = {"output_dir", "work_dir"}
|
|||||||
|
|
||||||
def load_config(path: Path | None = None) -> Config:
|
def load_config(path: Path | None = None) -> Config:
|
||||||
if path is None:
|
if path is None:
|
||||||
env = os.environ.get("KARAOKE_MAKER_CONFIG")
|
env = os.environ.get("SONGTRACE_CONFIG")
|
||||||
path = Path(env) if env else Path.home() / ".config/karaoke-maker/config.toml"
|
path = Path(env) if env else Path.home() / ".config/songtrace/config.toml"
|
||||||
data = tomllib.loads(Path(path).read_text())
|
data = tomllib.loads(Path(path).read_text())
|
||||||
known = {f.name for f in fields(Config)}
|
known = {f.name for f in fields(Config)}
|
||||||
unknown = set(data) - known
|
unknown = set(data) - known
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ def test_paths_and_overrides(tmp_path):
|
|||||||
def test_env_var(tmp_path, monkeypatch):
|
def test_env_var(tmp_path, monkeypatch):
|
||||||
cfg_file = tmp_path / "c.toml"
|
cfg_file = tmp_path / "c.toml"
|
||||||
cfg_file.write_text('whisper_url = "http://env/v1"\n')
|
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"
|
assert load_config().whisper_url == "http://env/v1"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+6
-6
@@ -4,8 +4,8 @@ import shutil
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
requires_full = pytest.mark.skipif(
|
requires_full = pytest.mark.skipif(
|
||||||
not os.environ.get("KARAOKE_E2E"),
|
not os.environ.get("SONGTRACE_E2E"),
|
||||||
reason="set KARAOKE_E2E=1 (needs GPU, ffmpeg, whisper server, network)")
|
reason="set SONGTRACE_E2E=1 (needs GPU, ffmpeg, whisper server, network)")
|
||||||
|
|
||||||
@requires_full
|
@requires_full
|
||||||
def test_full_pipeline(tmp_path):
|
def test_full_pipeline(tmp_path):
|
||||||
@@ -16,10 +16,10 @@ def test_full_pipeline(tmp_path):
|
|||||||
cfg.output_dir = tmp_path / "out"
|
cfg.output_dir = tmp_path / "out"
|
||||||
cfg.work_dir = tmp_path / "work"
|
cfg.work_dir = tmp_path / "work"
|
||||||
inp = SongInput(
|
inp = SongInput(
|
||||||
title=os.environ["KARAOKE_E2E_TITLE"],
|
title=os.environ["SONGTRACE_E2E_TITLE"],
|
||||||
artist=os.environ["KARAOKE_E2E_ARTIST"],
|
artist=os.environ["SONGTRACE_E2E_ARTIST"],
|
||||||
lyrics_text=open(os.environ["KARAOKE_E2E_LYRICS"]).read(),
|
lyrics_text=open(os.environ["SONGTRACE_E2E_LYRICS"]).read(),
|
||||||
youtube_url=os.environ.get("KARAOKE_E2E_URL"),
|
youtube_url=os.environ.get("SONGTRACE_E2E_URL"),
|
||||||
)
|
)
|
||||||
result = run_pipeline(inp, cfg)
|
result = run_pipeline(inp, cfg)
|
||||||
txts = list(result.output_dir.glob("*.txt"))
|
txts = list(result.output_dir.glob("*.txt"))
|
||||||
|
|||||||
Reference in New Issue
Block a user