[mypy] python_version = 3.14 strict = True warn_unused_configs = True ignore_missing_imports = False follow_imports = skip show_error_codes = True pretty = True files = app, scripts/architecture/async_blocking.py, scripts/architecture/mypy_policy.py exclude = ^app/plugins(?:/|$) platform = linux # 完整宿主源码读取真实 .py/.pyi 合同;运行时插件副本由插件发布链路治理。 [mypy-app.*] follow_imports = silent follow_imports_for_stubs = True # 读取已安装供应方的真实装饰器与路由签名,避免把已声明类型的接口视为 Any。 [mypy-click.*,fastapi.*] follow_imports = silent # 读取 Slack SDK 已声明的事件回调与客户端签名。 [mypy-slack_bolt.*,slack_sdk.*] follow_imports = silent # 使用 Pydantic 模型与 Uvicorn 的真实类型,避免从 Any 继承或擦除校验入口。 [mypy-pydantic.*,pydantic_settings.*,typing_extensions.*,uvicorn.*,pytest.*,_pytest.*] follow_imports = silent [mypy-langchain.*,langchain_core.*,langgraph.*,starlette.*] follow_imports = silent # 这些既有 SDK 未提供 py.typed 或类型桩;新增依赖不能复用全局缺失导入豁免。 [mypy-lxml.*,Pinyin2Hanzi.*,anitopy.*,apscheduler.*,boto3.*,botocore.*,cloakbrowser.*,cn2an.*,http_ece.*,moviepilot_rust.*,oss2.*,pillow_avif.*,py_vapid.*,pyquery.*,pystray.*,smbclient.*,smbprotocol.*,telegramify_markdown.*,torrentool.*] ignore_missing_imports = True