File size: 1,578 Bytes
7a88b43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
[tool.poetry]
authors = ["RevupAI Engineers"]
description = "MailPilot AI agents"
name = "MailPilot_ai_agents"
version = "0.1.0-alpha"

[tool.poetry.dependencies]
fastapi = "0.112.0"
python = "^3.12"
uvicorn = {extras = ["standard"], version = "^0.22.0"}
asyncpg = "0.30.0"
environs = "^9.5.0"
msal = "^1.23.0"
aiofiles = "^23.2.1"
langchain = "0.3.7"
langgraph = "0.2.52"
langgraph-checkpoint = "2.0.5"
langgraph-checkpoint-postgres="2.0.3"
pydantic-settings = "2.6.1"
langchain-openai = "0.2.5"
langchain-community = "0.3.5"
pyyaml = "6.0.2"
alembic = "1.14.0"
sqlalchemy = "2.0.35"
greenlet = "3.1.1"
psycopg2-binary = "2.9.10"
logger = "1.4"
structlog = "24.4.0"
starlette = ">=0.37.2,<0.38.0"
pymemcache = "4.0.0"
pandas = "2.2.3"
XlsxWriter = "3.2.0"
tiktoken = "0.8.0"
python-multipart="0.0.20"
openpyxl="3.1.5"
firebase-admin="6.2.0"
email-validator = "^2.1.0"

[tool.poetry.dev-dependencies]
autoflake = "^2.1.0"
black = "^23.9.1"
coverage = "^7.3.1"
flake8 = "^6.1.0"
isort = "^5.12.0"
pytest = "^8.3.3"
pytest-asyncio = "^0.21.1"
pre-commit = "^3.5.0"
pytest-mock = "^3.11.1"
factory-boy = "^3.3.0"

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

[tool.pytest.ini_options]
addopts = "-v"
asyncio_mode = "auto"
filterwarnings = []
markers = ["pytest.mark.asyncio"]
minversion = "6.0"
testpaths = ["app/tests"]

[tool.isort]
profile = "black"

[tool.flake8]
max-line-length = 120
select = "C, E, F, W, B, B9"
ignore = "E203, E501, W503"
exclude = """
  __init__.py,
  .venv,
  venv,
  __pycache__,
  .github,
  .vscode,
"""