ai-hackaton-backend/pyproject.toml
2025-09-08 16:08:25 +03:00

86 lines
1.9 KiB
TOML

[project]
name = "hr-ai-backend"
version = "0.1.0"
description = "HR AI Backend with FastAPI"
requires-python = ">=3.11"
dependencies = [
"fastapi[standard]>=0.104.0",
"uvicorn[standard]>=0.24.0",
"sqlmodel>=0.0.14",
"asyncpg>=0.29.0",
"alembic>=1.13.0",
"python-multipart>=0.0.6",
"boto3>=1.34.0",
"python-dotenv>=1.0.0",
"pydantic-settings>=2.1.0",
"langchain>=0.1.0",
"langchain-core>=0.1.0",
"langchain-community>=0.0.10",
"redis>=5.0.0",
"langchain-openai>=0.3.32",
"langchain-milvus>=0.2.1",
"celery>=5.3.0",
"pdfplumber>=0.10.0",
"psycopg2-binary>=2.9.0",
"python-docx>=1.2.0",
"docx2txt>=0.9",
"livekit>=1.0.12",
"livekit-api>=1.0.5",
"livekit-agents[cartesia,deepgram,openai,silero,resemble,turn-detector]~=1.2",
"textract>=1.5.0",
"comtypes>=1.4.12",
"reportlab>=4.4.3",
"yandex-speechkit>=1.5.0",
"pdfkit>=1.0.0",
"jinja2>=3.1.6",
"greenlet>=3.2.4",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["app"]
[tool.uv]
dev-dependencies = [
"pytest>=7.4.0",
"pytest-asyncio>=0.21.0",
"httpx>=0.25.0",
"mypy>=1.7.0",
"ruff>=0.12.12",
]
[tool.ruff]
line-length = 88
target-version = "py311"
[tool.ruff.lint]
# Enable equivalent of flake8 rules
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # Pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
]
ignore = [
"E501", # line too long, handled by formatter
]
[tool.ruff.format]
# Equivalent to black configuration
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"
[tool.mypy]
python_version = "3.11"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true