[project] name = "expressive-tts-arena" version = "0.1.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.11" dependencies = [ "anthropic>=0.45.2", "asyncpg>=0.28.0", "bs4>=0.0.2", "elevenlabs>=1.50.7", "gradio>=5.18.0", "greenlet>=2.0.0", "hume>=0.7.8", "openai>=1.68.0", "python-dotenv>=1.0.1", "sqlalchemy>=2.0.0", "tenacity>=9.0.0", ] [tool.uv] override-dependencies = [ "aiofiles==24.1.0", "sounddevice; sys_platform == 'never'", ] dev-dependencies = [ "mypy>=1.15.0", "pre-commit>=4.1.0", "pyright>=1.1.394", "pytest>=8.3.4", "ruff>=0.9.5", "watchfiles>=1.0.4", "types-requests>=2.28.0", ] [tool.ruff] line-length = 120 src = ["src"] [tool.ruff.lint] ignore = [ "B904", "BLE001", "D100", "D104", "EM101", "EM102", "FIX002", "G004", "PLR0912", "PLR0913", "PLR0915", "PLR2004", "RET504", "RUF006", "SIM117", "TD002", "TD003", ] select = [ "A", "ARG", "B", "BLE", "C4", "E", "EM", "ERA", "F", "FIX", "G", "I", "ICN", "ISC", "LOG", "N", "PL", "PT", "PTH", "PLR", "RET", "RUF", "SIM", "SLF", "T20", "TCH", "TD", "TID", "W", ] per-file-ignores = { "src/frontend/components/arena.py" = ["E501"], "src/frontend/components/leaderboard.py" = ["E501"], "src/middleware/meta_tag_injection.py" = ["E501"] } [tool.ruff.lint.pycodestyle] max-line-length = 120 [tool.ruff.lint.pydocstyle] convention = "google"