From 322f8eb98b106b0fcd311b321bbd4ccd469d92f7 Mon Sep 17 00:00:00 2001 From: Brad Anderson Date: Mon, 27 Jul 2026 18:14:23 -0700 Subject: [PATCH] refactor: move package from karaoke_maker to songtrace --- pyproject.toml | 4 ++-- scripts/screenshot_webui.py | 6 +++--- src/{karaoke_maker => songtrace}/__init__.py | 0 src/{karaoke_maker => songtrace}/audio_io.py | 0 src/{karaoke_maker => songtrace}/cli.py | 0 src/{karaoke_maker => songtrace}/config.py | 0 src/{karaoke_maker => songtrace}/grid.py | 0 src/{karaoke_maker => songtrace}/languages.py | 0 src/{karaoke_maker => songtrace}/lyrics.py | 0 src/{karaoke_maker => songtrace}/media.py | 0 src/{karaoke_maker => songtrace}/notes.py | 0 src/{karaoke_maker => songtrace}/pipeline.py | 0 src/{karaoke_maker => songtrace}/rebuild.py | 0 .../stages/__init__.py | 0 .../stages/acquire.py | 0 .../stages/align.py | 0 src/{karaoke_maker => songtrace}/stages/grid.py | 0 .../stages/notes.py | 0 .../stages/package.py | 0 .../stages/pitch.py | 0 .../stages/separate.py | 0 .../stages/transcribe.py | 0 .../static/fonts/OFL.txt | 0 .../static/fonts/chakra-petch-600.woff2 | Bin .../static/fonts/chakra-petch-700.woff2 | Bin .../static/index.html | 0 src/{karaoke_maker => songtrace}/ultrastar.py | 0 src/{karaoke_maker => songtrace}/web.py | 0 .../whisper_client.py | 0 tests/test_acquire.py | 10 +++++----- tests/test_align.py | 8 ++++---- tests/test_audio_io.py | 2 +- tests/test_cli.py | 2 +- tests/test_cli_make.py | 6 +++--- tests/test_config.py | 2 +- tests/test_e2e.py | 6 +++--- tests/test_grid.py | 10 +++++----- tests/test_lyrics.py | 2 +- tests/test_notes.py | 8 ++++---- tests/test_package.py | 8 ++++---- tests/test_pipeline.py | 4 ++-- tests/test_pitch.py | 6 +++--- tests/test_rebuild.py | 6 +++--- tests/test_separate.py | 6 +++--- tests/test_transcribe.py | 6 +++--- tests/test_ultrastar.py | 2 +- tests/test_web.py | 16 ++++++++-------- tests/test_whisper.py | 4 ++-- 48 files changed, 62 insertions(+), 62 deletions(-) rename src/{karaoke_maker => songtrace}/__init__.py (100%) rename src/{karaoke_maker => songtrace}/audio_io.py (100%) rename src/{karaoke_maker => songtrace}/cli.py (100%) rename src/{karaoke_maker => songtrace}/config.py (100%) rename src/{karaoke_maker => songtrace}/grid.py (100%) rename src/{karaoke_maker => songtrace}/languages.py (100%) rename src/{karaoke_maker => songtrace}/lyrics.py (100%) rename src/{karaoke_maker => songtrace}/media.py (100%) rename src/{karaoke_maker => songtrace}/notes.py (100%) rename src/{karaoke_maker => songtrace}/pipeline.py (100%) rename src/{karaoke_maker => songtrace}/rebuild.py (100%) rename src/{karaoke_maker => songtrace}/stages/__init__.py (100%) rename src/{karaoke_maker => songtrace}/stages/acquire.py (100%) rename src/{karaoke_maker => songtrace}/stages/align.py (100%) rename src/{karaoke_maker => songtrace}/stages/grid.py (100%) rename src/{karaoke_maker => songtrace}/stages/notes.py (100%) rename src/{karaoke_maker => songtrace}/stages/package.py (100%) rename src/{karaoke_maker => songtrace}/stages/pitch.py (100%) rename src/{karaoke_maker => songtrace}/stages/separate.py (100%) rename src/{karaoke_maker => songtrace}/stages/transcribe.py (100%) rename src/{karaoke_maker => songtrace}/static/fonts/OFL.txt (100%) rename src/{karaoke_maker => songtrace}/static/fonts/chakra-petch-600.woff2 (100%) rename src/{karaoke_maker => songtrace}/static/fonts/chakra-petch-700.woff2 (100%) rename src/{karaoke_maker => songtrace}/static/index.html (100%) rename src/{karaoke_maker => songtrace}/ultrastar.py (100%) rename src/{karaoke_maker => songtrace}/web.py (100%) rename src/{karaoke_maker => songtrace}/whisper_client.py (100%) diff --git a/pyproject.toml b/pyproject.toml index 339be59..16acff4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ dependencies = [ dev = ["pytest", "playwright"] [project.scripts] -karaoke-maker = "karaoke_maker.cli:main" +karaoke-maker = "songtrace.cli:main" [build-system] requires = ["setuptools>=68"] @@ -36,7 +36,7 @@ build-backend = "setuptools.build_meta" where = ["src"] [tool.setuptools.package-data] -karaoke_maker = ["static/*", "static/fonts/*"] +songtrace = ["static/*", "static/fonts/*"] [tool.pytest.ini_options] testpaths = ["tests"] diff --git a/scripts/screenshot_webui.py b/scripts/screenshot_webui.py index 2b724b3..a73e6ea 100644 --- a/scripts/screenshot_webui.py +++ b/scripts/screenshot_webui.py @@ -15,9 +15,9 @@ import httpx import uvicorn from playwright.sync_api import sync_playwright -from karaoke_maker.config import Config -from karaoke_maker.pipeline import PipelineError, PipelineResult -from karaoke_maker.web import create_app +from songtrace.config import Config +from songtrace.pipeline import PipelineError, PipelineResult +from songtrace.web import create_app REPO_ROOT = Path(__file__).resolve().parent.parent OUT_IMAGE = REPO_ROOT / "docs" / "images" / "webui.png" diff --git a/src/karaoke_maker/__init__.py b/src/songtrace/__init__.py similarity index 100% rename from src/karaoke_maker/__init__.py rename to src/songtrace/__init__.py diff --git a/src/karaoke_maker/audio_io.py b/src/songtrace/audio_io.py similarity index 100% rename from src/karaoke_maker/audio_io.py rename to src/songtrace/audio_io.py diff --git a/src/karaoke_maker/cli.py b/src/songtrace/cli.py similarity index 100% rename from src/karaoke_maker/cli.py rename to src/songtrace/cli.py diff --git a/src/karaoke_maker/config.py b/src/songtrace/config.py similarity index 100% rename from src/karaoke_maker/config.py rename to src/songtrace/config.py diff --git a/src/karaoke_maker/grid.py b/src/songtrace/grid.py similarity index 100% rename from src/karaoke_maker/grid.py rename to src/songtrace/grid.py diff --git a/src/karaoke_maker/languages.py b/src/songtrace/languages.py similarity index 100% rename from src/karaoke_maker/languages.py rename to src/songtrace/languages.py diff --git a/src/karaoke_maker/lyrics.py b/src/songtrace/lyrics.py similarity index 100% rename from src/karaoke_maker/lyrics.py rename to src/songtrace/lyrics.py diff --git a/src/karaoke_maker/media.py b/src/songtrace/media.py similarity index 100% rename from src/karaoke_maker/media.py rename to src/songtrace/media.py diff --git a/src/karaoke_maker/notes.py b/src/songtrace/notes.py similarity index 100% rename from src/karaoke_maker/notes.py rename to src/songtrace/notes.py diff --git a/src/karaoke_maker/pipeline.py b/src/songtrace/pipeline.py similarity index 100% rename from src/karaoke_maker/pipeline.py rename to src/songtrace/pipeline.py diff --git a/src/karaoke_maker/rebuild.py b/src/songtrace/rebuild.py similarity index 100% rename from src/karaoke_maker/rebuild.py rename to src/songtrace/rebuild.py diff --git a/src/karaoke_maker/stages/__init__.py b/src/songtrace/stages/__init__.py similarity index 100% rename from src/karaoke_maker/stages/__init__.py rename to src/songtrace/stages/__init__.py diff --git a/src/karaoke_maker/stages/acquire.py b/src/songtrace/stages/acquire.py similarity index 100% rename from src/karaoke_maker/stages/acquire.py rename to src/songtrace/stages/acquire.py diff --git a/src/karaoke_maker/stages/align.py b/src/songtrace/stages/align.py similarity index 100% rename from src/karaoke_maker/stages/align.py rename to src/songtrace/stages/align.py diff --git a/src/karaoke_maker/stages/grid.py b/src/songtrace/stages/grid.py similarity index 100% rename from src/karaoke_maker/stages/grid.py rename to src/songtrace/stages/grid.py diff --git a/src/karaoke_maker/stages/notes.py b/src/songtrace/stages/notes.py similarity index 100% rename from src/karaoke_maker/stages/notes.py rename to src/songtrace/stages/notes.py diff --git a/src/karaoke_maker/stages/package.py b/src/songtrace/stages/package.py similarity index 100% rename from src/karaoke_maker/stages/package.py rename to src/songtrace/stages/package.py diff --git a/src/karaoke_maker/stages/pitch.py b/src/songtrace/stages/pitch.py similarity index 100% rename from src/karaoke_maker/stages/pitch.py rename to src/songtrace/stages/pitch.py diff --git a/src/karaoke_maker/stages/separate.py b/src/songtrace/stages/separate.py similarity index 100% rename from src/karaoke_maker/stages/separate.py rename to src/songtrace/stages/separate.py diff --git a/src/karaoke_maker/stages/transcribe.py b/src/songtrace/stages/transcribe.py similarity index 100% rename from src/karaoke_maker/stages/transcribe.py rename to src/songtrace/stages/transcribe.py diff --git a/src/karaoke_maker/static/fonts/OFL.txt b/src/songtrace/static/fonts/OFL.txt similarity index 100% rename from src/karaoke_maker/static/fonts/OFL.txt rename to src/songtrace/static/fonts/OFL.txt diff --git a/src/karaoke_maker/static/fonts/chakra-petch-600.woff2 b/src/songtrace/static/fonts/chakra-petch-600.woff2 similarity index 100% rename from src/karaoke_maker/static/fonts/chakra-petch-600.woff2 rename to src/songtrace/static/fonts/chakra-petch-600.woff2 diff --git a/src/karaoke_maker/static/fonts/chakra-petch-700.woff2 b/src/songtrace/static/fonts/chakra-petch-700.woff2 similarity index 100% rename from src/karaoke_maker/static/fonts/chakra-petch-700.woff2 rename to src/songtrace/static/fonts/chakra-petch-700.woff2 diff --git a/src/karaoke_maker/static/index.html b/src/songtrace/static/index.html similarity index 100% rename from src/karaoke_maker/static/index.html rename to src/songtrace/static/index.html diff --git a/src/karaoke_maker/ultrastar.py b/src/songtrace/ultrastar.py similarity index 100% rename from src/karaoke_maker/ultrastar.py rename to src/songtrace/ultrastar.py diff --git a/src/karaoke_maker/web.py b/src/songtrace/web.py similarity index 100% rename from src/karaoke_maker/web.py rename to src/songtrace/web.py diff --git a/src/karaoke_maker/whisper_client.py b/src/songtrace/whisper_client.py similarity index 100% rename from src/karaoke_maker/whisper_client.py rename to src/songtrace/whisper_client.py diff --git a/tests/test_acquire.py b/tests/test_acquire.py index dca4d48..2058038 100644 --- a/tests/test_acquire.py +++ b/tests/test_acquire.py @@ -1,8 +1,8 @@ import json from pathlib import Path -from karaoke_maker.config import Config -from karaoke_maker.pipeline import Ctx, SongInput -from karaoke_maker.stages import acquire +from songtrace.config import Config +from songtrace.pipeline import Ctx, SongInput +from songtrace.stages import acquire def make_ctx(tmp_path, **kw): inp = SongInput(title="T", artist="A", lyrics_text="x", **kw) @@ -46,7 +46,7 @@ def test_outputs_are_meta_and_audio(tmp_path): def test_requires_exactly_one_source(tmp_path): import pytest - from karaoke_maker.pipeline import PipelineError + from songtrace.pipeline import PipelineError ctx = make_ctx(tmp_path) with pytest.raises(PipelineError): acquire.acquire_stage().run(ctx) @@ -73,7 +73,7 @@ def test_classify_no_thumbnail(tmp_path): def test_classify_no_video_raises(tmp_path): import pytest - from karaoke_maker.pipeline import PipelineError + from songtrace.pipeline import PipelineError (tmp_path / "source_video.jpg").write_bytes(b"t") with pytest.raises(PipelineError): acquire._classify_downloads(tmp_path) diff --git a/tests/test_align.py b/tests/test_align.py index b888c72..f37aab3 100644 --- a/tests/test_align.py +++ b/tests/test_align.py @@ -2,10 +2,10 @@ import json import pytest -from karaoke_maker.config import Config -from karaoke_maker.lyrics import normalize_lyrics -from karaoke_maker.pipeline import Ctx, PipelineError, SongInput -from karaoke_maker.stages import align +from songtrace.config import Config +from songtrace.lyrics import normalize_lyrics +from songtrace.pipeline import Ctx, PipelineError, SongInput +from songtrace.stages import align LYRICS = "it's one two three\nfour five six seven eight" diff --git a/tests/test_audio_io.py b/tests/test_audio_io.py index 46253ea..bb713b4 100644 --- a/tests/test_audio_io.py +++ b/tests/test_audio_io.py @@ -1,7 +1,7 @@ import numpy as np import soundfile as sf -from karaoke_maker.audio_io import load_wav +from songtrace.audio_io import load_wav def test_load_wav_mono(tmp_path): diff --git a/tests/test_cli.py b/tests/test_cli.py index 3207e42..819531a 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -1,4 +1,4 @@ -from karaoke_maker.cli import main +from songtrace.cli import main def test_version(capsys): assert main(["--version"]) == 0 diff --git a/tests/test_cli_make.py b/tests/test_cli_make.py index 7320ffa..7f26600 100644 --- a/tests/test_cli_make.py +++ b/tests/test_cli_make.py @@ -2,9 +2,9 @@ import os import pytest -import karaoke_maker.cli as cli -from karaoke_maker.config import Config -from karaoke_maker.pipeline import PipelineError, PipelineResult +import songtrace.cli as cli +from songtrace.config import Config +from songtrace.pipeline import PipelineError, PipelineResult def setup_cfg(monkeypatch, tmp_path): diff --git a/tests/test_config.py b/tests/test_config.py index 99edfa5..d58e8d7 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -1,6 +1,6 @@ import pytest from pathlib import Path -from karaoke_maker.config import Config, load_config +from songtrace.config import Config, load_config def test_load_minimal(tmp_path): diff --git a/tests/test_e2e.py b/tests/test_e2e.py index f131bde..d6d3fbe 100644 --- a/tests/test_e2e.py +++ b/tests/test_e2e.py @@ -9,8 +9,8 @@ requires_full = pytest.mark.skipif( @requires_full def test_full_pipeline(tmp_path): - from karaoke_maker.config import load_config - from karaoke_maker.pipeline import SongInput, run_pipeline + from songtrace.config import load_config + from songtrace.pipeline import SongInput, run_pipeline assert shutil.which("ffmpeg"), "ffmpeg required" cfg = load_config() cfg.output_dir = tmp_path / "out" @@ -24,7 +24,7 @@ def test_full_pipeline(tmp_path): result = run_pipeline(inp, cfg) txts = list(result.output_dir.glob("*.txt")) assert len(txts) == 1 - from karaoke_maker.ultrastar import get_header, parse_ultrastar + from songtrace.ultrastar import get_header, parse_ultrastar song = parse_ultrastar(txts[0].read_text(encoding="utf-8")) assert get_header(song, "BPM") and get_header(song, "GAP") assert len(song.body) > 20 diff --git a/tests/test_grid.py b/tests/test_grid.py index 9acb8be..88ab114 100644 --- a/tests/test_grid.py +++ b/tests/test_grid.py @@ -2,11 +2,11 @@ import json import numpy as np import pytest -from karaoke_maker.config import Config -from karaoke_maker.grid import scale_bpm, to_ultrastar -from karaoke_maker.pipeline import Ctx, PipelineError, SongInput -from karaoke_maker.stages import all_stages, grid as grid_stage_mod -from karaoke_maker.ultrastar import ( +from songtrace.config import Config +from songtrace.grid import scale_bpm, to_ultrastar +from songtrace.pipeline import Ctx, PipelineError, SongInput +from songtrace.stages import all_stages, grid as grid_stage_mod +from songtrace.ultrastar import ( LineBreak, Note, get_header, parse_ultrastar, ) diff --git a/tests/test_lyrics.py b/tests/test_lyrics.py index 71dbe89..716c759 100644 --- a/tests/test_lyrics.py +++ b/tests/test_lyrics.py @@ -1,4 +1,4 @@ -from karaoke_maker.lyrics import normalize_lyrics, alignment_token +from songtrace.lyrics import normalize_lyrics, alignment_token RAW = """[Verse 1] It's one two three diff --git a/tests/test_notes.py b/tests/test_notes.py index 0eacdb6..0088f96 100644 --- a/tests/test_notes.py +++ b/tests/test_notes.py @@ -2,13 +2,13 @@ import json import numpy as np import pytest -from karaoke_maker.config import Config -from karaoke_maker.notes import ( +from songtrace.config import Config +from songtrace.notes import ( MIN_NOTE_SEC, TimedNote, build_notes, hz_to_ultrastar, segment_span, syllabify, ) -from karaoke_maker.pipeline import Ctx, SongInput -from karaoke_maker.stages import all_stages, notes as notes_stage_mod +from songtrace.pipeline import Ctx, SongInput +from songtrace.stages import all_stages, notes as notes_stage_mod def flat_pitch(duration=10.0, hz=261.63): # C4 diff --git a/tests/test_package.py b/tests/test_package.py index 259683a..420bc95 100644 --- a/tests/test_package.py +++ b/tests/test_package.py @@ -4,12 +4,12 @@ from pathlib import Path import pytest from PIL import Image -from karaoke_maker.config import Config -from karaoke_maker.pipeline import ( +from songtrace.config import Config +from songtrace.pipeline import ( STAGE_ORDER, Ctx, PipelineError, SongInput, run_pipeline, song_slug, ) -from karaoke_maker.stages import all_stages, package -from karaoke_maker.ultrastar import get_header, parse_ultrastar +from songtrace.stages import all_stages, package +from songtrace.ultrastar import get_header, parse_ultrastar SONG_TXT = ("#TITLE:T\n#ARTIST:A\n#MP3:A - T.mp3\n#COVER:A - T.jpg\n" "#VIDEO:A - T.webm\n#BPM:200\n#GAP:0\n: 0 1 0 la\nE\n") diff --git a/tests/test_pipeline.py b/tests/test_pipeline.py index 7ce80e4..7516435 100644 --- a/tests/test_pipeline.py +++ b/tests/test_pipeline.py @@ -1,7 +1,7 @@ import json from pathlib import Path -from karaoke_maker.config import Config -from karaoke_maker.pipeline import SongInput, Stage, run_pipeline, song_slug +from songtrace.config import Config +from songtrace.pipeline import SongInput, Stage, run_pipeline, song_slug def make_cfg(tmp_path): return Config(whisper_url="http://x/v1", output_dir=tmp_path / "out", diff --git a/tests/test_pitch.py b/tests/test_pitch.py index 3231d8c..82b4d0c 100644 --- a/tests/test_pitch.py +++ b/tests/test_pitch.py @@ -1,7 +1,7 @@ import numpy as np -from karaoke_maker.config import Config -from karaoke_maker.pipeline import Ctx, SongInput -from karaoke_maker.stages import pitch +from songtrace.config import Config +from songtrace.pipeline import Ctx, SongInput +from songtrace.stages import pitch def test_pitch_stage_writes_npz(tmp_path, monkeypatch): diff --git a/tests/test_rebuild.py b/tests/test_rebuild.py index 50bbdf7..6e31bde 100644 --- a/tests/test_rebuild.py +++ b/tests/test_rebuild.py @@ -3,9 +3,9 @@ from pathlib import Path import pytest -from karaoke_maker.config import Config -from karaoke_maker.pipeline import STAGE_ORDER, PipelineError, SongInput -from karaoke_maker.rebuild import (FIELD_STAGE, changed_fields, plan, +from songtrace.config import Config +from songtrace.pipeline import STAGE_ORDER, PipelineError, SongInput +from songtrace.rebuild import (FIELD_STAGE, changed_fields, plan, relocate_work, superseded_output) diff --git a/tests/test_separate.py b/tests/test_separate.py index c07bf9e..b71a8dd 100644 --- a/tests/test_separate.py +++ b/tests/test_separate.py @@ -1,9 +1,9 @@ import numpy as np import soundfile as sf import torch -from karaoke_maker.config import Config -from karaoke_maker.pipeline import Ctx, SongInput -from karaoke_maker.stages import separate +from songtrace.config import Config +from songtrace.pipeline import Ctx, SongInput +from songtrace.stages import separate def test_separate_writes_stems(tmp_path, monkeypatch): diff --git a/tests/test_transcribe.py b/tests/test_transcribe.py index cb9fa57..2ae2161 100644 --- a/tests/test_transcribe.py +++ b/tests/test_transcribe.py @@ -1,6 +1,6 @@ -from karaoke_maker.lyrics import normalize_lyrics -from karaoke_maker.whisper_client import TranscriptSegment -from karaoke_maker.stages.transcribe import lyrics_similarity, vocal_sections +from songtrace.lyrics import normalize_lyrics +from songtrace.whisper_client import TranscriptSegment +from songtrace.stages.transcribe import lyrics_similarity, vocal_sections def seg(s, e, t=""): return TranscriptSegment(start=s, end=e, text=t) diff --git a/tests/test_ultrastar.py b/tests/test_ultrastar.py index aa43dbe..b523cc3 100644 --- a/tests/test_ultrastar.py +++ b/tests/test_ultrastar.py @@ -1,5 +1,5 @@ from pathlib import Path -from karaoke_maker.ultrastar import ( +from songtrace.ultrastar import ( Note, LineBreak, parse_ultrastar, serialize_ultrastar, get_header, format_bpm, parse_bpm, ) diff --git a/tests/test_web.py b/tests/test_web.py index d4b0c19..2d8710b 100644 --- a/tests/test_web.py +++ b/tests/test_web.py @@ -6,9 +6,9 @@ import time import pytest from fastapi.testclient import TestClient -from karaoke_maker.config import Config -from karaoke_maker.pipeline import STAGE_ORDER, PipelineError, PipelineResult, song_slug -from karaoke_maker.web import STAGE_LINE, create_app +from songtrace.config import Config +from songtrace.pipeline import STAGE_ORDER, PipelineError, PipelineResult, song_slug +from songtrace.web import STAGE_LINE, create_app def make_client(tmp_path, runner): @@ -190,7 +190,7 @@ def test_cover_upload_kept_after_success(tmp_path): def test_cleanup_uploads_removes_an_inherited_upload_dir(tmp_path): """A rebuild's video may live under its parent's id, not its own.""" - from karaoke_maker.web import _cleanup_uploads + from songtrace.web import _cleanup_uploads cfg = Config(whisper_url="u", work_dir=tmp_path / "work", output_dir=tmp_path / "out") parent = cfg.work_dir / "uploads" / "parent" @@ -201,7 +201,7 @@ def test_cleanup_uploads_removes_an_inherited_upload_dir(tmp_path): def test_cleanup_uploads_ignores_paths_outside_the_upload_root(tmp_path): - from karaoke_maker.web import _cleanup_uploads + from songtrace.web import _cleanup_uploads cfg = Config(whisper_url="u", work_dir=tmp_path / "work", output_dir=tmp_path / "out") outside = tmp_path / "somewhere" / "keep.mp4" @@ -212,7 +212,7 @@ def test_cleanup_uploads_ignores_paths_outside_the_upload_root(tmp_path): def test_cleanup_uploads_tolerates_a_missing_file(tmp_path): - from karaoke_maker.web import _cleanup_uploads + from songtrace.web import _cleanup_uploads cfg = Config(whisper_url="u", work_dir=tmp_path / "work", output_dir=tmp_path / "out") _cleanup_uploads(cfg, "child", cfg.work_dir / "uploads" / "child" / "gone.mp4") @@ -340,13 +340,13 @@ def test_fonts_are_served(tmp_path): def test_font_licence_is_bundled(): - from karaoke_maker.web import STATIC + from songtrace.web import STATIC licence = (STATIC / "fonts" / "OFL.txt").read_text(encoding="utf-8", errors="replace") assert "SIL OPEN FONT LICENSE" in licence.upper() def _index_html(): - from karaoke_maker.web import STATIC + from songtrace.web import STATIC return (STATIC / "index.html").read_text(encoding="utf-8") diff --git a/tests/test_whisper.py b/tests/test_whisper.py index 0c7bb54..3bc54fd 100644 --- a/tests/test_whisper.py +++ b/tests/test_whisper.py @@ -1,7 +1,7 @@ import httpx from pathlib import Path -from karaoke_maker.config import Config -from karaoke_maker.whisper_client import TranscriptSegment, transcribe +from songtrace.config import Config +from songtrace.whisper_client import TranscriptSegment, transcribe def test_transcribe_parses_segments(tmp_path): audio = tmp_path / "v.wav"