Files
life-echo/api/pyproject.toml
Kevin 22d282dc01 feat(api): use Tencent 16k_zh_large ASR and remove local Whisper
Standardize ASR on Tencent's dialect-capable engine across all environments,
drop faster-whisper from dependencies and deployment images, and add an
expo-sqlite iOS vendor sync plus pod install in prebuild to prevent native
build failures after npm install.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-25 10:21:41 +08:00

105 lines
2.5 KiB
TOML

[project]
name = "api"
version = "0.2.0"
description = "Backend For Life Echo App"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"alembic>=1.18.4",
"bcrypt>=5.0.0",
"celery[redis]>=5.6.2",
"cos-python-sdk-v5>=1.9.41",
"fastapi[standard]>=0.135.1",
"flower>=2.0.1",
"greenlet>=3.3.2",
"httpx>=0.28.1",
"langchain>=1.2.12",
"langchain-openai>=1.1.11",
"loguru>=0.7.3",
"openai>=2.26.0",
"opentelemetry-api>=1.42.0",
"opentelemetry-exporter-otlp-proto-grpc>=1.42.0",
"opentelemetry-instrumentation-celery>=0.63b0",
"opentelemetry-instrumentation-fastapi>=0.63b0",
"opentelemetry-instrumentation-httpx>=0.63b0",
"opentelemetry-instrumentation-logging>=0.63b0",
"opentelemetry-instrumentation-redis>=0.63b0",
"opentelemetry-instrumentation-sqlalchemy>=0.63b0",
"opentelemetry-sdk>=1.42.0",
"pgvector>=0.4.2",
"pillow>=12.1.1",
"psycopg[binary]>=3.2.0",
"pydantic>=2.12.5",
"pydantic-settings>=2.13.1",
"pydub>=0.25.1",
"pyjwt>=2.12.0",
"python-alipay-sdk>=3.4.0",
"redis>=6.4.0",
"reportlab>=4.4.10",
"sqlalchemy>=2.0.48",
"tencentcloud-sdk-python>=3.1.54",
"weasyprint>=68.1",
"wechatpayv3>=2.0.2",
"zai-sdk>=0.2.2",
]
[dependency-groups]
dev = [
"aiosqlite>=0.22.1",
"pyright>=1.1.408",
"pytest>=9.0.2",
"pytest-asyncio>=1.3.0",
"pytest-cov>=7.0.0",
"ruff>=0.15.6",
]
[tool.ruff]
line-length = 88
target-version = "py313"
[tool.ruff.lint]
select = ["E", "F", "I", "B"]
ignore = ["E501", "B008", "E712"]
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]
"main.py" = ["E402", "I001"]
"internal_main.py" = ["E402", "I001"]
"app/tasks/celery_app.py" = ["E402"]
"tests/conftest.py" = ["E402", "I001"]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
line-ending = "auto"
[tool.fastapi]
entrypoint = "app.main:app"
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["."]
python_files = ["test_*.py"]
markers = [
"integration: marks tests that require external services or real infrastructure",
"unit: marks isolated unit tests",
"slow: marks slow-running tests",
]
addopts = "-ra --strict-markers --strict-config --import-mode=importlib"
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
asyncio_default_test_loop_scope = "function"
[tool.pyright]
include = ["."]
exclude = [
"**/__pycache__",
".venv",
"build",
"dist",
]
pythonVersion = "3.13"
typeCheckingMode = "standard"
reportMissingImports = "error"
reportMissingTypeStubs = false