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