speaches / pyproject.toml
Fedir Zadniprovskyi
deps: fix onnruntime-gpu constraint
a388705
raw
history blame
3.95 kB
[project]
name = "speaches"
version = "0.1.0"
requires-python = ">=3.12,<3.13"
# https://packaging.python.org/en/latest/specifications/version-specifiers/#id5
dependencies = [
"ctranslate2>=4.5.0",
"fastapi>=0.115.0",
"faster-whisper>=1.1.0",
"huggingface-hub[hf-transfer]>=0.25.1",
"kokoro-onnx>=0.2.2",
"numpy>=2.1.1",
"onnxruntime-gpu>=1.20.1 ; platform_machine == 'x86_64'",
"piper-phonemize ; platform_machine == 'x86_64'",
"piper-tts>=1.2.0 ; platform_machine == 'x86_64'",
"pydantic-settings>=2.5.2",
"pydantic>=2.9.0",
"python-multipart>=0.0.10",
"sounddevice>=0.5.1",
"soundfile>=0.12.1",
"uvicorn>=0.30.6",
]
[project.optional-dependencies]
client = [
"keyboard>=0.13.5",
]
dev = [
"anyio>=4.4.0",
"basedpyright>=1.18.0",
"pytest-antilru>=2.0.0",
"mkdocs-material>=9.5.39",
"mkdocstrings[python]>=0.26.1",
"pytest-asyncio>=0.24.0",
"pytest-xdist>=3.6.1",
"pytest>=8.3.3",
"ruff>=0.9.1",
"srt>=3.5.3",
"webvtt-py>=0.5.1",
"pre-commit>=4.0.1",
"pytest-mock>=3.14.0",
"mkdocs-render-swagger-plugin>=0.1.2",
"mdx-truly-sane-lists>=1.3",
]
ui = [
"gradio>=5.0.2",
"httpx>=0.27.2",
"httpx-sse>=0.4.0",
"openai>=1.48.0",
]
opentelemetry = [
"opentelemetry-distro>=0.48b0",
"opentelemetry-exporter-otlp>=1.27.0",
"opentelemetry-instrumentation-asyncio==0.48b0",
"opentelemetry-instrumentation-logging==0.48b0",
"opentelemetry-instrumentation-threading==0.48b0",
"opentelemetry-instrumentation-urllib==0.48b0",
# "opentelemetry-instrumentation-wsgi==0.48b0"
"opentelemetry-instrumentation-fastapi==0.48b0",
"opentelemetry-instrumentation-grpc==0.48b0",
"opentelemetry-instrumentation-httpx==0.48b0",
"opentelemetry-instrumentation-requests==0.48b0",
"opentelemetry-instrumentation-urllib3==0.48b0",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
# https://docs.astral.sh/ruff/configuration/
[tool.ruff]
line-length = 120
target-version = "py311"
[tool.ruff.lint]
select = ["ALL"]
ignore = [
"FIX",
"TD", # disable todo warnings
"ERA", # allow commented out code
"ANN003", # missing kwargs
"ANN101", # missing self type
"B006",
"B008",
"COM812", # trailing comma
"D10", # disabled required docstrings
"D401",
"EM102",
"FBT001",
"FBT002",
"PLR0913",
"PLR2004", # magic
"RET504",
"RET505",
"RET508",
"S101", # allow assert
"S104",
"S603", # subprocess untrusted input
"SIM102",
"T201", # print
"TRY003",
"W505",
"ISC001", # recommended to disable for formatting
"INP001",
"PT018",
"G004", # logging f string
]
[tool.ruff.lint.isort]
force-sort-within-sections = true
[tool.ruff.format]
# Like Black, use double quotes for strings.
quote-style = "double"
# Like Black, indent with spaces, rather than tabs.
indent-style = "space"
# Like Black, respect magic trailing commas.
skip-magic-trailing-comma = false
# Like Black, automatically detect the appropriate line ending.
line-ending = "auto"
[tool.basedpyright]
typeCheckingMode = "standard"
pythonVersion = "3.12"
pythonPlatform = "Linux"
# https://github.com/DetachHead/basedpyright?tab=readme-ov-file#pre-commit-hook
venvPath = "."
venv = ".venv"
[tool.pytest.ini_options]
asyncio_default_fixture_loop_scope = "function" # this fixes pytest warning
filterwarnings = [
'ignore::DeprecationWarning'
]
# https://docs.pytest.org/en/stable/how-to/mark.html#registering-marks
markers = [
"requires_openai",
]
[tool.uv]
constraint-dependencies = ["llvmlite>=0.40.0"]
[tool.uv.sources]
piper-phonemize = { url = "https://github.com/fedirz/piper-phonemize/raw/refs/heads/master/dist/piper_phonemize-1.2.0-cp312-cp312-manylinux_2_28_x86_64.whl" }
[[tool.uv.dependency-metadata]]
name = "piper-tts"
version = "1.2.0"
requires-dist = ["piper-phonemize"]