-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
117 lines (105 loc) · 3.23 KB
/
Copy pathpyproject.toml
File metadata and controls
117 lines (105 loc) · 3.23 KB
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
[tool.ruff]
exclude = ["env", "migrations"]
line-length = 88
select = ["F", "E", "W"]
fixable = ["F", "E"]
[tool.ruff.per-file-ignores]
# SQLAlchemy uses string forward references in Mapped[] for cross-model relationships.
# These are resolved at runtime by the ORM registry, not by Python's name resolution.
"src/domain/*/model.py" = ["F821"]
[tool.poetry]
name = "app"
version = "0.1.0"
description = "FastAPI application"
authors = ["João Netto <joaonettopb@hotmail.com>"]
readme = "README.md"
[tool.poetry.dependencies]
python = "^3.11"
fastapi = ">=0.115.0"
uvicorn = ">=0.22.0"
SQLAlchemy = ">=2.0.13"
psycopg2-binary = ">=2.9.6"
gunicorn = ">=22.0.0"
python-dotenv = ">=1.0.0"
alembic = ">=1.11.1"
pydantic = ">=2.10.0"
pydantic-settings = ">=2.0.0"
httpx = ">=0.24.1"
slowapi = "^0.1.9"
sentry-asgi = "^0.2.0"
sqlalchemy-utils = "^0.41.2"
langchain-openai = "^0.3"
langgraph = "^1.0"
langgraph-supervisor = ">=0.0.12"
langgraph-swarm = ">=0.0.10"
langchain-mcp-adapters = "^0.1"
langchain-text-splitters = "^0.3"
langchain = "^1.2.15"
blinker = "^1.9.0"
celery = {version = ">=5.3", extras = ["rabbitmq"]}
[tool.poetry.dev-dependencies]
pytest = "7.4.0"
ruff = "^0.0.290"
pytest-asyncio = "^0.23"
mypy = ">=1.10"
celery-stubs = ">=0.1.3"
[tool.poetry.scripts]
start = "bin.run:start"
[tool.mypy]
python_version = "3.11"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = false
plugins = ["pydantic.mypy"]
# Third-party libraries without stubs or py.typed marker.
# celery-stubs exists but is not installed in the dev venv — treat as stub-less.
[[tool.mypy.overrides]]
module = [
"celery.*",
"kombu.*",
"sentry_asgi.*",
"slowapi.*",
"langgraph.*",
"langgraph_supervisor.*",
"langgraph_swarm.*",
"langchain_mcp_adapters.*",
"langchain_core.*",
"langchain_openai.*",
"langchain_text_splitters.*",
"langchain.*",
]
ignore_missing_imports = true
# SQLAlchemy models use string forward references resolved at runtime by the ORM registry.
# Quoted names like Mapped["Participant"] cannot be imported (circular), so name-defined
# is a permanent false positive — not fixable without restructuring all models.
[[tool.mypy.overrides]]
module = "src.domain.*.model"
disable_error_code = ["name-defined"]
# LangChain @tool decorator returns StructuredTool at runtime but mypy infers
# Callable[..., Any] due to absent stubs. False positives from the stub gap only.
[[tool.mypy.overrides]]
module = [
"src.domain.agents.apps.*",
"src.domain.agents.tools.rag",
]
disable_error_code = ["list-item", "return-value"]
# create_agent / create_swarm / create_supervisor return Any without stubs.
# The declared CompiledStateGraph return type is correct at runtime.
[[tool.mypy.overrides]]
module = [
"src.domain.agents.core.factory",
"src.domain.agents.core.supervisor",
"src.domain.agents.core.swarm",
]
disable_error_code = ["no-any-return"]
# ChatOpenAI / OpenAIEmbeddings constructor kwargs are valid but unverifiable
# without stubs for langchain_openai.
[[tool.mypy.overrides]]
module = [
"src.domain.agents.config.llm_factory",
"src.domain.agents.config.embeddings_factory",
]
disable_error_code = ["call-arg"]
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"