[tool.poetry]
name = "open-assistant-api"
version = "0.1.0"
description = ""
authors = ["Tuanzi1015 <tuanzi1015@gmail.com>"]
readme = "README.md"

[tool.black]
target-version = ["py310"]
line-length = 120
exclude = '''(
  /(
      migrations
    | tests/e2e
  )/
)'''

[tool.ruff]
exclude = ["migrations", "tests/e2e"]
# https://docs.astral.sh/ruff/rules
select = ["E", "F", "N", "PIE", "T20", "Q"]
line-length = 120


[tool.poetry.dependencies]
python = ">=3.10,<3.13"
celery = ">=5.3.4,<5.4.0"
sqlakeyset = ">=2.0.1680321678,<2.1.0"
loguru = ">=0.6.0,<0.7.0"
sqlmodel = ">=0.0.11,<0.1.0"
uvicorn = "^0.27.1"
pymysql = ">=1.1.0,<1.2.0"
python-multipart = ">=0.0.7,<0.1.0"
redis = ">=5.0.1,<5.1.0"
orjson = ">=3.9.10,<3.10.0"
boto3 = ">=1.33.0,<1.34.0"
openai = "1.27.0"
python-magic = ">=0.4.27,<0.5.0"
beautifulsoup4 = ">=4.12.2,<4.13.0"
pymupdf = ">=1.23.7,<1.24.0"
alembic = ">=1.13.0,<1.14.0"
aiohttp = ">=3.9.2,<4.0.0"
pydantic = { version = ">=2,<3", extras = ["dotenv"] }
sse-starlette = "^1.8.2"
openapi-spec-validator = "^0.7.1"
pycryptodome = "^3.20.0"
lxml = "^5.1.0"
aiomysql = "^0.2.0"
greenlet = "^3.0.3"
gevent = "^24.2.1"
pydantic-settings = "^2.4.0"
langchain = "^0.2.12"
langchain-community = "^0.2.11"
fastapi = ">=0.109.2,<=0.112.0"
fastapi-pagination = "^0.12.26"
httpx = "^0.27.0"
distro = "^1.9.0"
aiofiles = "^24.1.0"
r2r = "^0.3.4"
pyjwt = "^2.9.0"


[tool.poetry.group.dev.dependencies]
black = "^24.3.0"
ruff = "^0.1.9"
pytest = "^7.4.3"
pytest-asyncio = "^0.23.2"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
