@@ -67,6 +67,8 @@ dependencies = [
67
67
" starlette>=0.47.2" ,
68
68
" uvicorn>=0.35.0" ,
69
69
" zeroconf>=0.147.0" ,
70
+ " aiohttp>=3.12.14" ,
71
+ " websockets>=15.0.1"
70
72
]
71
73
72
74
# ----------------------------------------------------------------
@@ -248,6 +250,22 @@ include = "\\.pyi?$"
248
250
249
251
# isort configuration
250
252
[tool .isort ]
253
+
254
+
255
+ # --------------------------------------------------------------------
256
+ # 🛠 Async tool configurations (async-test, async-lint, etc.)
257
+ # --------------------------------------------------------------------
258
+ [tool .ruff ]
259
+ select = [" F" , " E" , " W" , " B" , " ASYNC" ]
260
+ unfixable = [" B" ] # Never auto-fix critical bugbear warnings
261
+
262
+ [tool .ruff .flake8-bugbear ]
263
+ extend-immutable-calls = [" fastapi.Depends" , " fastapi.Query" ]
264
+
265
+ [[tool .mypy .overrides ]]
266
+ module = " tests.*"
267
+ disallow_untyped_defs = false
268
+
251
269
# ##############################################################################
252
270
# Core behaviour
253
271
# ##############################################################################
@@ -318,6 +336,7 @@ warn_unreachable = true # Warn about unreachable code
318
336
warn_unused_ignores = true # Warn if a "# type: ignore" is unnecessary
319
337
warn_unused_configs = true # Warn about unused config options
320
338
warn_redundant_casts = true # Warn if a cast does nothing
339
+ warn_unused_coroutine = true # Warn if an unused async coroutine is defined
321
340
strict_equality = true # Disallow ==/!= between incompatible types
322
341
323
342
# Output formatting
@@ -331,6 +350,9 @@ exclude = [
331
350
' ^\\.mypy_cache/' ,
332
351
]
333
352
353
+ # Plugins to use with mypy
354
+ plugins = [" pydantic.mypy" ] # Enable mypy plugin for Pydantic models
355
+
334
356
[tool .pytest .ini_options ]
335
357
minversion = " 6.0"
336
358
addopts = " -ra -q --cov=mcpgateway --ignore=tests/playwright"
0 commit comments