ai-cost-tracker/backend/pyproject.toml

51 lines
1.2 KiB
TOML

[tool.poetry]
name = "ai-cost-tracker"
version = "0.1.0"
description = "Shared AI cost tracking service for Oliver Agency projects"
authors = ["Oliver Agency"]
packages = [{include = "app"}]
[tool.poetry.dependencies]
python = "^3.11"
fastapi = "^0.115.0"
uvicorn = {extras = ["standard"], version = "^0.24.0"}
pydantic = {extras = ["email"], version = "^2.5.0"}
pydantic-settings = "^2.1.0"
pymongo = "^4.6.0"
motor = "^3.3.2"
redis = "^5.0.1"
celery = {extras = ["redis"], version = "^5.3.4"}
httpx = "^0.28.1"
python-jose = {extras = ["cryptography"], version = "^3.3.0"}
libpass = {extras = ["bcrypt"], version = "^1.9.1"}
python-multipart = "^0.0.6"
sendgrid = "^6.11.0"
jinja2 = "^3.1.6"
pyyaml = "^6.0.1"
cryptography = "^41.0.0"
[tool.poetry.group.dev.dependencies]
pytest = "^7.4.3"
pytest-asyncio = "^0.21.1"
pytest-mock = "^3.12.0"
black = "^23.11.0"
ruff = "^0.1.6"
mypy = "^1.7.1"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.black]
line-length = 88
target-version = ['py311']
[tool.ruff]
target-version = "py311"
line-length = 88
select = ["E", "W", "F", "I", "B", "C4", "UP"]
ignore = ["E501", "B008", "C901"]
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"