[project]
name = "clawith-backend"
version = "0.1.0"
description = "Clawith - Enterprise Digital Employee Platform Backend"
requires-python = ">=3.11"
dependencies = [
    "fastapi[standard]>=0.115.0",
    "uvicorn[standard]>=0.30.0",
    "sqlalchemy[asyncio]>=2.0.0",
    "asyncpg>=0.30.0",
    "alembic>=1.14.0",
    "redis[hiredis]>=5.0.0",
    "pydantic>=2.0.0",
    "pydantic-settings>=2.0.0",
    "python-jose[cryptography]>=3.3.0",
    "passlib[bcrypt]>=1.7.4",
    "python-multipart>=0.0.9",
    "httpx[socks]>=0.27.0",
    "docker>=7.0.0",
    "websockets>=13.0",
    "aiofiles>=24.0.0",
    "croniter>=2.0.0",
    "pyyaml>=6.0.0",
    "trafilatura>=1.12.0",
    "lxml>=5.0.0",
    "lxml-html-clean>=0.4.0",
    "PyNaCl>=1.5.0",
    "pdfplumber>=0.11.0",
    "python-docx>=1.1.0",
    "openpyxl>=3.1.0",
    "python-pptx>=1.0.0",
    "lark-oapi>=1.2.9",
    "dingtalk-stream>=0.17.0",
    "wecom-aibot-sdk-python>=0.1.4",
    "pycryptodome>=3.20.0",
    "loguru>=0.7.0",
    "discord.py>=2.3.0",
    "wuying-agentbay-sdk>=0.18.0",
    "pypinyin>=0.52.0",
    "anyascii>=0.3.2",
    "Pillow>=10.0.0",
]

[project.optional-dependencies]
teams = [
    "azure-identity>=1.15.0",
]
dev = [
    "pytest>=8.0.0",
    "pytest-asyncio>=0.24.0",
    "httpx>=0.27.0",
    "ruff>=0.8.0",
]

[tool.ruff]
target-version = "py311"
line-length = 120

[tool.pytest.ini_options]
asyncio_mode = "auto"

[build-system]
requires = ["setuptools>=68.0", "wheel"]
build-backend = "setuptools.build_meta"

[tool.setuptools.packages.find]
include = ["app*"]
