[project] name = "AstrBot" version = "3.5.5" description = "易上手的多平台 LLM 聊天机器人及开发框架" readme = "README.md" requires-python = ">=3.10" dependencies = [ "aiocqhttp>=1.4.4", "aiodocker>=0.24.0", "aiohttp>=3.11.14", "anthropic>=0.49.0", "apscheduler>=3.11.0", "beautifulsoup4>=4.13.3", "certifi>=2025.1.31", "chardet~=5.1.0", "colorlog>=6.9.0", "cryptography>=44.0.2", "dashscope>=1.22.2", "defusedxml>=0.7.1", "dingtalk-stream>=0.22.1", "docstring-parser>=0.16", "google-genai>=1.10.0", "googlesearch-python>=1.3.0", "lark-oapi>=1.4.12", "lxml-html-clean>=0.4.1", "mcp>=1.5.0", "openai>=1.68.2", "ormsgpack>=1.9.0", "pillow>=11.1.0", "pip>=25.0.1", "psutil>=5.8.0", "pydantic~=2.10.3", "pyjwt>=2.10.1", "python-telegram-bot>=22.0", "qq-botpy>=1.2.1", "quart>=0.20.0", "readability-lxml>=0.8.1", "silk-python>=0.2.6", "telegramify-markdown>=0.5.0", "wechatpy>=1.8.18", ] [tool.ruff] exclude = [ "astrbot/core/utils/t2i/local_strategy.py", "astrbot/api/all.py", ] line-length = 88 lint.ignore = [ "F403", "F405", "E501", "ASYNC230" # TODO: handle ASYNC230 in AstrBot ] lint.select = [ "F", # Pyflakes "W", # pycodestyle warnings "E", # pycodestyle errors "ASYNC", # flake8-async "C4", # flake8-comprehensions "Q", # flake8-quotes ] target-version = "py310"