From 58cc7c898a50eb1cd7805464abb4e57f1fd9951c Mon Sep 17 00:00:00 2001 From: remsky Date: Mon, 13 Jan 2025 23:48:13 -0700 Subject: [PATCH] ci: update dependency installation and testing commands; add ebooklib and html2text dependencies --- .github/workflows/ci.yml | 8 ++------ .gitignore | 6 ++++++ docker/cpu/docker-compose.yml | 8 ++++---- pyproject.toml | 3 ++- uv.lock | 22 ++++++++++++++++++++++ 5 files changed, 36 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index de41105..c2036b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,12 +28,8 @@ jobs: - name: Install dependencies run: | - uv sync --all-extras --dev + uv pip install -e .[test] - - name: Lint with ruff - run: | - uv run ruff check . - - - name: Test API and UI + - name: Run Tests run: | uv run pytest api/tests/ ui/tests/ --asyncio-mode=auto --cov=api --cov=ui --cov-report=term-missing diff --git a/.gitignore b/.gitignore index 4d8d73c..6310f74 100644 --- a/.gitignore +++ b/.gitignore @@ -71,3 +71,9 @@ EXTERNAL_UV_DOCUMENTATION* # Docker Dockerfile* docker-compose* +examples/assorted_checks/River_of_Teet_-_Sarah_Gailey.epub +examples/ebook_test/chapter_to_audio.py +examples/ebook_test/chapters_to_audio.py +examples/ebook_test/parse_epub.py +examples/ebook_test/River_of_Teet_-_Sarah_Gailey.epub +examples/ebook_test/River_of_Teet_-_Sarah_Gailey.txt diff --git a/docker/cpu/docker-compose.yml b/docker/cpu/docker-compose.yml index fbe0436..f94fbc3 100644 --- a/docker/cpu/docker-compose.yml +++ b/docker/cpu/docker-compose.yml @@ -24,13 +24,13 @@ services: gradio-ui: # image: ghcr.io/remsky/kokoro-fastapi:latest-ui # Uncomment below (and comment out above) to build from source instead of using the released image - # build: - # context: ./ui + build: + context: ../../ui ports: - "7860:7860" volumes: - - ./ui/data:/app/ui/data - - ./ui/app.py:/app/app.py # Mount app.py for hot reload + - ../../ui/data:/app/ui/data + - ../../ui/app.py:/app/app.py # Mount app.py for hot reload environment: - GRADIO_WATCH=True # Enable hot reloading - PYTHONUNBUFFERED=1 # Ensure Python output is not buffered diff --git a/pyproject.toml b/pyproject.toml index 5ced533..68434e1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,6 +31,8 @@ dependencies = [ "loguru==0.7.3", "transformers==4.47.1", "openai>=1.59.6", + "ebooklib>=0.18", + "html2text>=2024.2.26", ] [project.optional-dependencies] @@ -47,7 +49,6 @@ test = [ "pytest-asyncio==0.23.5", "gradio>=5", "openai>=1.59.6", - "ruff>=0.2.2", ] [tool.uv] diff --git a/uv.lock b/uv.lock index 993cbc1..52e4de2 100644 --- a/uv.lock +++ b/uv.lock @@ -397,6 +397,16 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a7/f9/e014eb5740dfc6ebe6105f4c38890f361e5b0e1537a9f04bb4f34432efb9/dlinfo-1.2.1-py3-none-any.whl", hash = "sha256:a97d7cc66d997b4ac491f0e8068eb324790994834951a9beb5a4619835b361d9", size = 3559 }, ] +[[package]] +name = "ebooklib" +version = "0.18" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e8/1d/90bb33317d756c25b40bb55312dda30a94afb691755763fc00976250c82b/EbookLib-0.18.tar.gz", hash = "sha256:38562643a7bc94d9bf56e9930b4927e4e93b5d1d0917f697a6454db5a1c1a533", size = 115484 } + [[package]] name = "exceptiongroup" version = "1.2.2" @@ -571,6 +581,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761", size = 58259 }, ] +[[package]] +name = "html2text" +version = "2024.2.26" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1a/43/e1d53588561e533212117750ee79ad0ba02a41f52a08c1df3396bd466c05/html2text-2024.2.26.tar.gz", hash = "sha256:05f8e367d15aaabc96415376776cdd11afd5127a77fce6e36afc60c563ca2c32", size = 56527 } + [[package]] name = "httpcore" version = "1.0.7" @@ -771,7 +787,9 @@ source = { editable = "." } dependencies = [ { name = "aiofiles" }, { name = "click" }, + { name = "ebooklib" }, { name = "fastapi" }, + { name = "html2text" }, { name = "loguru" }, { name = "munch" }, { name = "numpy" }, @@ -806,14 +824,17 @@ test = [ { name = "pytest" }, { name = "pytest-asyncio" }, { name = "pytest-cov" }, + { name = "ruff" }, ] [package.metadata] requires-dist = [ { name = "aiofiles", specifier = "==23.2.1" }, { name = "click", specifier = ">=8.0.0" }, + { name = "ebooklib", specifier = ">=0.18" }, { name = "fastapi", specifier = "==0.115.6" }, { name = "gradio", marker = "extra == 'test'", specifier = ">=5" }, + { name = "html2text", specifier = ">=2024.2.26" }, { name = "httpx", marker = "extra == 'test'", specifier = "==0.26.0" }, { name = "loguru", specifier = "==0.7.3" }, { name = "munch", specifier = "==4.0.0" }, @@ -830,6 +851,7 @@ requires-dist = [ { name = "python-dotenv", specifier = "==1.0.1" }, { name = "regex", specifier = "==2024.11.6" }, { name = "requests", specifier = "==2.32.3" }, + { name = "ruff", marker = "extra == 'test'", specifier = ">=0.2.2" }, { name = "scipy", specifier = "==1.14.1" }, { name = "soundfile", specifier = "==0.13.0" }, { name = "sqlalchemy", specifier = "==2.0.27" },