ci: simplify ci by using uv where possible

This commit is contained in:
Enno Hermann 2024-10-20 23:09:11 +02:00
parent 8e66be2c32
commit ce5c492518
12 changed files with 89 additions and 153 deletions

View File

@ -13,17 +13,15 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: [3.9] python-version: [3.9]
experimental: [false]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }} - name: Install uv
uses: actions/setup-python@v5 uses: astral-sh/setup-uv@v3
with: with:
python-version: ${{ matrix.python-version }} version: "0.4.27"
architecture: x64 enable-cache: true
cache: 'pip' cache-dependency-glob: "**/pyproject.toml"
cache-dependency-path: 'requirements*' - name: Set up Python ${{ matrix.python-version }}
- name: Install/upgrade dev dependencies run: uv python install ${{ matrix.python-version }}
run: python3 -m pip install -r requirements.dev.txt
- name: Lint check - name: Lint check
run: make lint run: make lint

View File

@ -16,17 +16,14 @@ jobs:
subset: ["data_tests", "inference_tests", "test_aux", "test_text", "test_tts", "test_tts2", "test_vocoder", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"] subset: ["data_tests", "inference_tests", "test_aux", "test_text", "test_tts", "test_tts2", "test_vocoder", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }} - name: Install uv
uses: actions/setup-python@v5 uses: astral-sh/setup-uv@v3
with: with:
python-version: ${{ matrix.python-version }} version: "0.4.27"
architecture: x64 enable-cache: true
cache: 'pip' cache-dependency-glob: "**/pyproject.toml"
cache-dependency-path: 'requirements*' - name: Set up Python ${{ matrix.python-version }}
- name: check OS run: uv python install ${{ matrix.python-version }}
run: cat /etc/os-release
- name: set ENV
run: export TRAINER_TELEMETRY=0
- name: Install Espeak - name: Install Espeak
if: contains(fromJSON('["inference_tests", "test_text", "test_tts", "test_tts2", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]'), matrix.subset) if: contains(fromJSON('["inference_tests", "test_text", "test_tts", "test_tts2", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]'), matrix.subset)
run: | run: |
@ -37,21 +34,17 @@ jobs:
sudo apt-get update sudo apt-get update
sudo apt-get install -y --no-install-recommends git make gcc sudo apt-get install -y --no-install-recommends git make gcc
make system-deps make system-deps
- name: Install/upgrade Python setup deps
run: python3 -m pip install --upgrade pip setuptools wheel uv
- name: Replace scarf urls - name: Replace scarf urls
if: contains(fromJSON('["data_tests", "inference_tests", "test_aux", "test_tts", "test_tts2", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]'), matrix.subset) if: contains(fromJSON('["data_tests", "inference_tests", "test_aux", "test_tts", "test_tts2", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]'), matrix.subset)
run: | run: |
sed -i 's/https:\/\/coqui.gateway.scarf.sh\//https:\/\/github.com\/coqui-ai\/TTS\/releases\/download\//g' TTS/.models.json sed -i 's/https:\/\/coqui.gateway.scarf.sh\//https:\/\/github.com\/coqui-ai\/TTS\/releases\/download\//g' TTS/.models.json
- name: Install TTS - name: Unit tests
run: | run: |
resolution=highest resolution=highest
if [ "${{ matrix.python-version }}" == "3.9" ]; then if [ "${{ matrix.python-version }}" == "3.9" ]; then
resolution=lowest-direct resolution=lowest-direct
fi fi
python3 -m uv pip install --resolution=$resolution --system "coqui-tts[dev,server,languages] @ ." uv run --resolution=$resolution --extra server --extra languages make ${{ matrix.subset }}
- name: Unit tests
run: make ${{ matrix.subset }}
- name: Upload coverage data - name: Upload coverage data
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
@ -65,18 +58,17 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: actions/setup-python@v5 - name: Install uv
uses: astral-sh/setup-uv@v3
with: with:
python-version: "3.12" version: "0.4.27"
- uses: actions/download-artifact@v4 - uses: actions/download-artifact@v4
with: with:
pattern: coverage-data-* pattern: coverage-data-*
merge-multiple: true merge-multiple: true
- name: Combine coverage - name: Combine coverage
run: | run: |
python -Im pip install --upgrade coverage[toml] uv python install
uvx coverage combine
python -Im coverage combine uvx coverage html --skip-covered --skip-empty
python -Im coverage html --skip-covered --skip-empty uvx coverage report --format=markdown >> $GITHUB_STEP_SUMMARY
python -Im coverage report --format=markdown >> $GITHUB_STEP_SUMMARY

2
.gitignore vendored
View File

@ -1,3 +1,5 @@
uv.lock
WadaSNR/ WadaSNR/
.idea/ .idea/
*.pyc *.pyc

View File

@ -1,6 +1,6 @@
repos: repos:
- repo: "https://github.com/pre-commit/pre-commit-hooks" - repo: "https://github.com/pre-commit/pre-commit-hooks"
rev: v4.5.0 rev: v5.0.0
hooks: hooks:
- id: check-yaml - id: check-yaml
- id: end-of-file-fixer - id: end-of-file-fixer
@ -11,14 +11,7 @@ repos:
- id: black - id: black
language_version: python3 language_version: python3
- repo: https://github.com/astral-sh/ruff-pre-commit - repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.3.0 rev: v0.7.0
hooks: hooks:
- id: ruff - id: ruff
args: [--fix, --exit-non-zero-on-fix] args: [--fix, --exit-non-zero-on-fix]
- repo: local
hooks:
- id: generate_requirements.py
name: generate_requirements.py
language: system
entry: python scripts/generate_requirements.py
files: "pyproject.toml|requirements.*\\.txt|tools/generate_requirements.py"

View File

@ -44,29 +44,37 @@ If you have a new feature, a model to implement, or a bug to squash, go ahead an
Please use the following steps to send a ✨**PR**✨. Please use the following steps to send a ✨**PR**✨.
Let us know if you encounter a problem along the way. Let us know if you encounter a problem along the way.
The following steps are tested on an Ubuntu system. The following steps are tested on an Ubuntu system and require
[uv](https://docs.astral.sh/uv/) for virtual environment management. Choose your
preferred [installation
method](https://docs.astral.sh/uv/getting-started/installation/), e.g. the
standalone installer:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
1. Fork 🐸TTS[https://github.com/idiap/coqui-ai-TTS] by clicking the fork button at the top right corner of the project page. 1. Fork 🐸TTS[https://github.com/idiap/coqui-ai-TTS] by clicking the fork button at the top right corner of the project page.
2. Clone 🐸TTS and add the main repo as a new remote named ```upstream```. 2. Clone 🐸TTS and add the main repo as a new remote named ```upstream```.
```bash ```bash
$ git clone git@github.com:<your Github name>/coqui-ai-TTS.git git clone git@github.com:<your Github name>/coqui-ai-TTS.git
$ cd coqui-ai-TTS cd coqui-ai-TTS
$ git remote add upstream https://github.com/idiap/coqui-ai-TTS.git git remote add upstream https://github.com/idiap/coqui-ai-TTS.git
``` ```
3. Install 🐸TTS for development. 3. Install 🐸TTS for development.
```bash ```bash
$ make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a different OS. make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a different OS.
$ make install_dev make install_dev
``` ```
4. Create a new branch with an informative name for your goal. 4. Create a new branch with an informative name for your goal.
```bash ```bash
$ git checkout -b an_informative_name_for_my_branch git checkout -b an_informative_name_for_my_branch
``` ```
5. Implement your changes on your new branch. 5. Implement your changes on your new branch.
@ -75,39 +83,42 @@ The following steps are tested on an Ubuntu system.
7. Add your tests to our test suite under ```tests``` folder. It is important to show that your code works, edge cases are considered, and inform others about the intended use. 7. Add your tests to our test suite under ```tests``` folder. It is important to show that your code works, edge cases are considered, and inform others about the intended use.
8. Run the tests to see how your updates work with the rest of the project. You can repeat this step multiple times as you implement your changes to make sure you are on the right direction. 8. Run the tests to see how your updates work with the rest of the project. You
can repeat this step multiple times as you implement your changes to make
sure you are on the right direction. **NB: running all tests takes a long time,
it is better to leave this to the CI.**
```bash ```bash
$ make test # stop at the first error uv run make test # stop at the first error
$ make test_all # run all the tests, report all the errors uv run make test_all # run all the tests, report all the errors
``` ```
9. Format your code. We use ```black``` for code formatting. 9. Format your code. We use ```black``` for code formatting.
```bash ```bash
$ make style make style
``` ```
10. Run the linter and correct the issues raised. We use ```ruff``` for linting. It helps to enforce a coding standard, offers simple refactoring suggestions. 10. Run the linter and correct the issues raised. We use ```ruff``` for linting. It helps to enforce a coding standard, offers simple refactoring suggestions.
```bash ```bash
$ make lint make lint
``` ```
11. When things are good, add new files and commit your changes. 11. When things are good, add new files and commit your changes.
```bash ```bash
$ git add my_file1.py my_file2.py ... git add my_file1.py my_file2.py ...
$ git commit git commit
``` ```
It's a good practice to regularly sync your local copy of the project with the upstream code to keep up with the recent updates. It's a good practice to regularly sync your local copy of the project with the upstream code to keep up with the recent updates.
```bash ```bash
$ git fetch upstream git fetch upstream
$ git rebase upstream/main git rebase upstream/main
# or for the development version # or for the development version
$ git rebase upstream/dev git rebase upstream/dev
``` ```
12. Send a PR to ```dev``` branch. 12. Send a PR to ```dev``` branch.
@ -115,7 +126,7 @@ The following steps are tested on an Ubuntu system.
Push your branch to your fork. Push your branch to your fork.
```bash ```bash
$ git push -u origin an_informative_name_for_my_branch git push -u origin an_informative_name_for_my_branch
``` ```
Then go to your fork's Github page and click on 'Pull request' to send your ✨**PR**✨. Then go to your fork's Github page and click on 'Pull request' to send your ✨**PR**✨.
@ -137,9 +148,9 @@ If you prefer working within a Docker container as your development environment,
2. Clone 🐸TTS and add the main repo as a new remote named ```upsteam```. 2. Clone 🐸TTS and add the main repo as a new remote named ```upsteam```.
```bash ```bash
$ git clone git@github.com:<your Github name>/coqui-ai-TTS.git git clone git@github.com:<your Github name>/coqui-ai-TTS.git
$ cd coqui-ai-TTS cd coqui-ai-TTS
$ git remote add upstream https://github.com/idiap/coqui-ai-TTS.git git remote add upstream https://github.com/idiap/coqui-ai-TTS.git
``` ```
3. Build the Docker Image as your development environment (it installs all of the dependencies for you): 3. Build the Docker Image as your development environment (it installs all of the dependencies for you):

View File

@ -14,7 +14,7 @@ RUN rm -rf /root/.cache/pip
WORKDIR /root WORKDIR /root
COPY . /root COPY . /root
RUN make install RUN pip3 install -e .[all]
ENTRYPOINT ["tts"] ENTRYPOINT ["tts"]
CMD ["--help"] CMD ["--help"]

View File

@ -1,5 +1,5 @@
.DEFAULT_GOAL := help .DEFAULT_GOAL := help
.PHONY: test system-deps dev-deps style lint install install_dev help docs .PHONY: test system-deps style lint install install_dev help docs
help: help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
@ -50,27 +50,24 @@ test_failed: ## only run tests failed the last time.
coverage run -m nose2 -F -v -B tests coverage run -m nose2 -F -v -B tests
style: ## update code style. style: ## update code style.
black ${target_dirs} uv run --only-dev black ${target_dirs}
lint: ## run linters. lint: ## run linters.
ruff check ${target_dirs} uv run --only-dev ruff check ${target_dirs}
black ${target_dirs} --check uv run --only-dev black ${target_dirs} --check
system-deps: ## install linux system deps system-deps: ## install linux system deps
sudo apt-get install -y libsndfile1-dev sudo apt-get install -y libsndfile1-dev
dev-deps: ## install development deps
pip install -r requirements.dev.txt
build-docs: ## build the docs build-docs: ## build the docs
cd docs && make clean && make build cd docs && make clean && make build
install: ## install 🐸 TTS install: ## install 🐸 TTS
pip install -e .[all] uv sync --all-extras
install_dev: ## install 🐸 TTS for development. install_dev: ## install 🐸 TTS for development.
pip install -e .[all,dev] uv sync --all-extras
pre-commit install uv run pre-commit install
docs: ## build the docs docs: ## build the docs
$(MAKE) -C docs clean && $(MAKE) -C docs html $(MAKE) -C docs clean && $(MAKE) -C docs html

View File

@ -1,16 +1,13 @@
## 🐸Coqui TTS News ## 🐸Coqui TTS News
- 📣 Fork of the [original, unmaintained repository](https://github.com/coqui-ai/TTS). New PyPI package: [coqui-tts](https://pypi.org/project/coqui-tts) - 📣 Fork of the [original, unmaintained repository](https://github.com/coqui-ai/TTS). New PyPI package: [coqui-tts](https://pypi.org/project/coqui-tts)
- 📣 Prebuilt wheels are now also published for Mac and Windows (in addition to Linux as before) for easier installation across platforms.
- 📣 ⓍTTSv2 is here with 16 languages and better performance across the board. - 📣 ⓍTTSv2 is here with 16 languages and better performance across the board.
- 📣 ⓍTTS fine-tuning code is out. Check the [example recipes](https://github.com/idiap/coqui-ai-TTS/tree/dev/recipes/ljspeech). - 📣 ⓍTTS fine-tuning code is out. Check the [example recipes](https://github.com/idiap/coqui-ai-TTS/tree/dev/recipes/ljspeech).
- 📣 ⓍTTS can now stream with <200ms latency. - 📣 ⓍTTS can now stream with <200ms latency.
- 📣 ⓍTTS, our production TTS model that can speak 13 languages, is released [Blog Post](https://coqui.ai/blog/tts/open_xtts), [Demo](https://huggingface.co/spaces/coqui/xtts), [Docs](https://coqui-tts.readthedocs.io/en/latest/models/xtts.html) - 📣 ⓍTTS, our production TTS model that can speak 13 languages, is released [Blog Post](https://coqui.ai/blog/tts/open_xtts), [Demo](https://huggingface.co/spaces/coqui/xtts), [Docs](https://coqui-tts.readthedocs.io/en/latest/models/xtts.html)
- 📣 [🐶Bark](https://github.com/suno-ai/bark) is now available for inference with unconstrained voice cloning. [Docs](https://coqui-tts.readthedocs.io/en/latest/models/bark.html) - 📣 [🐶Bark](https://github.com/suno-ai/bark) is now available for inference with unconstrained voice cloning. [Docs](https://coqui-tts.readthedocs.io/en/latest/models/bark.html)
- 📣 You can use [~1100 Fairseq models](https://github.com/facebookresearch/fairseq/tree/main/examples/mms) with 🐸TTS. - 📣 You can use [~1100 Fairseq models](https://github.com/facebookresearch/fairseq/tree/main/examples/mms) with 🐸TTS.
- 📣 🐸TTS now supports 🐢Tortoise with faster inference. [Docs](https://coqui-tts.readthedocs.io/en/latest/models/tortoise.html)
<div align="center">
<img src="https://static.scarf.sh/a.png?x-pxid=cf317fe7-2188-4721-bc01-124bb5d5dbb2" />
## <img src="https://raw.githubusercontent.com/idiap/coqui-ai-TTS/main/images/coqui-log-green-TTS.png" height="56"/> ## <img src="https://raw.githubusercontent.com/idiap/coqui-ai-TTS/main/images/coqui-log-green-TTS.png" height="56"/>
@ -27,7 +24,6 @@ ______________________________________________________________________
[![Discord](https://img.shields.io/discord/1037326658807533628?color=%239B59B6&label=chat%20on%20discord)](https://discord.gg/5eXr5seRrv) [![Discord](https://img.shields.io/discord/1037326658807533628?color=%239B59B6&label=chat%20on%20discord)](https://discord.gg/5eXr5seRrv)
[![License](<https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg>)](https://opensource.org/licenses/MPL-2.0) [![License](<https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg>)](https://opensource.org/licenses/MPL-2.0)
[![PyPI version](https://badge.fury.io/py/coqui-tts.svg)](https://badge.fury.io/py/coqui-tts) [![PyPI version](https://badge.fury.io/py/coqui-tts.svg)](https://badge.fury.io/py/coqui-tts)
[![Covenant](https://camo.githubusercontent.com/7d620efaa3eac1c5b060ece5d6aacfcc8b81a74a04d05cd0398689c01c4463bb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6e7472696275746f72253230436f76656e616e742d76322e3025323061646f707465642d6666363962342e737667)](https://github.com/idiap/coqui-ai-TTS/blob/main/CODE_OF_CONDUCT.md)
[![Downloads](https://pepy.tech/badge/coqui-tts)](https://pepy.tech/project/coqui-tts) [![Downloads](https://pepy.tech/badge/coqui-tts)](https://pepy.tech/project/coqui-tts)
[![DOI](https://zenodo.org/badge/265612440.svg)](https://zenodo.org/badge/latestdoi/265612440) [![DOI](https://zenodo.org/badge/265612440.svg)](https://zenodo.org/badge/latestdoi/265612440)
@ -44,9 +40,8 @@ ______________________________________________________________________
Please use our dedicated channels for questions and discussion. Help is much more valuable if it's shared publicly so that more people can benefit from it. Please use our dedicated channels for questions and discussion. Help is much more valuable if it's shared publicly so that more people can benefit from it.
| Type | Platforms | | Type | Platforms |
| ------------------------------- | --------------------------------------- | | -------------------------------------------- | ----------------------------------- |
| 🚨 **Bug Reports** | [GitHub Issue Tracker] | | 🚨 **Bug Reports, Feature Requests & Ideas** | [GitHub Issue Tracker] |
| 🎁 **Feature Requests & Ideas** | [GitHub Issue Tracker] |
| 👩‍💻 **Usage Questions** | [GitHub Discussions] | | 👩‍💻 **Usage Questions** | [GitHub Discussions] |
| 🗯 **General Discussion** | [GitHub Discussions] or [Discord] | | 🗯 **General Discussion** | [GitHub Discussions] or [Discord] |
@ -66,15 +61,10 @@ repository are also still a useful source of information.
| 💼 **Documentation** | [ReadTheDocs](https://coqui-tts.readthedocs.io/en/latest/) | 💼 **Documentation** | [ReadTheDocs](https://coqui-tts.readthedocs.io/en/latest/)
| 💾 **Installation** | [TTS/README.md](https://github.com/idiap/coqui-ai-TTS/tree/dev#installation)| | 💾 **Installation** | [TTS/README.md](https://github.com/idiap/coqui-ai-TTS/tree/dev#installation)|
| 👩‍💻 **Contributing** | [CONTRIBUTING.md](https://github.com/idiap/coqui-ai-TTS/blob/main/CONTRIBUTING.md)| | 👩‍💻 **Contributing** | [CONTRIBUTING.md](https://github.com/idiap/coqui-ai-TTS/blob/main/CONTRIBUTING.md)|
| 📌 **Road Map** | [Main Development Plans](https://github.com/coqui-ai/TTS/issues/378)
| 🚀 **Released Models** | [Standard models](https://github.com/idiap/coqui-ai-TTS/blob/dev/TTS/.models.json) and [Fairseq models in ~1100 languages](https://github.com/idiap/coqui-ai-TTS#example-text-to-speech-using-fairseq-models-in-1100-languages-)| | 🚀 **Released Models** | [Standard models](https://github.com/idiap/coqui-ai-TTS/blob/dev/TTS/.models.json) and [Fairseq models in ~1100 languages](https://github.com/idiap/coqui-ai-TTS#example-text-to-speech-using-fairseq-models-in-1100-languages-)|
| 📰 **Papers** | [TTS Papers](https://github.com/erogol/TTS-papers)|
## Features ## Features
- High-performance Deep Learning models for Text2Speech tasks. - High-performance Deep Learning models for Text2Speech tasks. See lists of models below.
- Text2Spec models (Tacotron, Tacotron2, Glow-TTS, SpeedySpeech).
- Speaker Encoder to compute speaker embeddings efficiently.
- Vocoder models (MelGAN, Multiband-MelGAN, GAN-TTS, ParallelWaveGAN, WaveGrad, WaveRNN)
- Fast and efficient model training. - Fast and efficient model training.
- Detailed training logs on the terminal and Tensorboard. - Detailed training logs on the terminal and Tensorboard.
- Support for Multi-speaker TTS. - Support for Multi-speaker TTS.
@ -180,8 +170,8 @@ pip install -e .[server,ja]
If you are on Ubuntu (Debian), you can also run following commands for installation. If you are on Ubuntu (Debian), you can also run following commands for installation.
```bash ```bash
$ make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a different OS. make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a different OS.
$ make install make install
``` ```
If you are on Windows, 👑@GuyPaddock wrote installation instructions If you are on Windows, 👑@GuyPaddock wrote installation instructions

View File

@ -20,4 +20,4 @@ RUN rm -rf /root/.cache/pip
WORKDIR /root WORKDIR /root
COPY . /root COPY . /root
RUN make install RUN pip3 install -e .[all,dev]

View File

@ -48,7 +48,7 @@ dependencies = [
"cython>=3.0.0", "cython>=3.0.0",
"scipy>=1.11.2", "scipy>=1.11.2",
"torch>=2.1", "torch>=2.1",
"torchaudio", "torchaudio>=2.1.0",
"soundfile>=0.12.0", "soundfile>=0.12.0",
"librosa>=0.10.1", "librosa>=0.10.1",
"inflect>=5.6.0", "inflect>=5.6.0",
@ -77,15 +77,6 @@ dependencies = [
] ]
[project.optional-dependencies] [project.optional-dependencies]
# Development dependencies
dev = [
"black==24.2.0",
"coverage[toml]>=7",
"nose2>=0.15",
"pre-commit>=3",
"ruff==0.4.9",
"tomli>=2; python_version < '3.11'",
]
# Dependencies for building the documentation # Dependencies for building the documentation
docs = [ docs = [
"furo>=2023.5.20", "furo>=2023.5.20",
@ -115,6 +106,7 @@ ko = [
"hangul_romanize>=0.1.0", "hangul_romanize>=0.1.0",
"jamo>=0.4.1", "jamo>=0.4.1",
"g2pkk>=0.1.1", "g2pkk>=0.1.1",
"pip>=22.2",
] ]
# Japanese # Japanese
ja = [ ja = [
@ -136,6 +128,15 @@ all = [
"coqui-tts[notebooks,server,bn,ja,ko,zh]", "coqui-tts[notebooks,server,bn,ja,ko,zh]",
] ]
[dependency-groups]
dev = [
"black==24.2.0",
"coverage[toml]>=7",
"nose2>=0.15",
"pre-commit>=3",
"ruff==0.7.0",
]
[project.urls] [project.urls]
Homepage = "https://github.com/idiap/coqui-ai-TTS" Homepage = "https://github.com/idiap/coqui-ai-TTS"
Documentation = "https://coqui-tts.readthedocs.io" Documentation = "https://coqui-tts.readthedocs.io"
@ -151,13 +152,12 @@ tts-server = "TTS.server.server:main"
constraint-dependencies = ["numba>0.58.0"] constraint-dependencies = ["numba>0.58.0"]
[tool.ruff] [tool.ruff]
target-version = "py39"
line-length = 120 line-length = 120
extend-exclude = ["*.ipynb"]
lint.extend-select = [ lint.extend-select = [
"B033", # duplicate-value "B033", # duplicate-value
"C416", # unnecessary-comprehension "C416", # unnecessary-comprehension
"D419", # empty-docstring "D419", # empty-docstring
"E999", # syntax-error
"F401", # unused-import "F401", # unused-import
"F704", # yield-outside-function "F704", # yield-outside-function
"F706", # return-outside-function "F706", # return-outside-function

View File

@ -1,8 +0,0 @@
# Generated via scripts/generate_requirements.py and pre-commit hook.
# Do not edit this file; modify pyproject.toml instead.
black==24.2.0
coverage[toml]>=7
nose2>=0.15
pre-commit>=3
ruff==0.4.9
tomli>=2; python_version < '3.11'

View File

@ -1,39 +0,0 @@
#!/usr/bin/env python
"""Generate requirements/*.txt files from pyproject.toml.
Adapted from:
https://github.com/numpy/numpydoc/blob/e7c6baf00f5f73a4a8f8318d0cb4e04949c9a5d1/tools/generate_requirements.py
"""
import sys
from pathlib import Path
try: # standard module since Python 3.11
import tomllib as toml
except ImportError:
try: # available for older Python via pip
import tomli as toml
except ImportError:
sys.exit("Please install `tomli` first: `pip install tomli`")
script_pth = Path(__file__)
repo_dir = script_pth.parent.parent
script_relpth = script_pth.relative_to(repo_dir)
header = [
f"# Generated via {script_relpth.as_posix()} and pre-commit hook.",
"# Do not edit this file; modify pyproject.toml instead.",
]
def generate_requirement_file(name: str, req_list: list[str]) -> None:
req_fname = repo_dir / f"requirements.{name}.txt"
req_fname.write_text("\n".join(header + req_list) + "\n")
def main() -> None:
pyproject = toml.loads((repo_dir / "pyproject.toml").read_text())
generate_requirement_file("dev", pyproject["project"]["optional-dependencies"]["dev"])
if __name__ == "__main__":
main()