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>
105 lines
2.5 KiB
TOML
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
|