| [project] |
| name = "AstrBot" |
| version = "4.20.0" |
| description = "Easy-to-use multi-platform LLM chatbot and development framework" |
| readme = "README.md" |
| requires-python = ">=3.12" |
|
|
| keywords = ["Astrbot", "Astrbot Module", "Astrbot Plugin"] |
|
|
| dependencies = [ |
| "aiocqhttp>=1.4.4", |
| "aiodocker>=0.24.0", |
| "aiohttp>=3.11.18", |
| "aiosqlite>=0.21.0", |
| "anthropic>=0.51.0", |
| "apscheduler>=3.11.0", |
| "beautifulsoup4>=4.13.4", |
| "certifi>=2025.4.26", |
| "chardet~=5.1.0", |
| "loguru>=0.7.2", |
| "cryptography>=44.0.3", |
| "dashscope>=1.23.2", |
| "defusedxml>=0.7.1", |
| "deprecated>=1.2.18", |
| "dingtalk-stream>=0.22.1", |
| "docstring-parser>=0.16", |
| "faiss-cpu>=1.12.0", |
| "filelock>=3.18.0", |
| "google-genai>=1.56.0", |
| "lark-oapi>=1.4.15", |
| "lxml-html-clean>=0.4.2", |
| "mcp>=1.8.0", |
| "openai>=1.78.0", |
| "ormsgpack>=1.9.1", |
| "pillow>=11.2.1", |
| "pip>=25.1.1", |
| "psutil>=5.8.0,<7.2.0", |
| "py-cord>=2.6.1", |
| "pydantic>=2.12.5", |
| "pydub>=0.25.1", |
| "pyjwt>=2.10.1", |
| "python-telegram-bot>=22.6", |
| "qq-botpy>=1.2.1", |
| "quart>=0.20.0", |
| "readability-lxml>=0.8.4.1", |
| "silk-python>=0.2.6", |
| "slack-sdk>=3.35.0", |
| "sqlalchemy[asyncio]>=2.0.41", |
| "sqlmodel>=0.0.24", |
| "telegramify-markdown>=1.0.0", |
| "watchfiles>=1.0.5", |
| "websockets>=15.0.1", |
| "wechatpy>=1.8.18", |
| "audioop-lts ; python_full_version >= '3.13'", |
| "click>=8.2.1", |
| "pypdf>=6.1.1", |
| "aiofiles>=25.1.0", |
| "rank-bm25>=0.2.2", |
| "jieba>=0.42.1", |
| "markitdown-no-magika[docx,xls,xlsx]>=0.1.2", |
| "xinference-client", |
| "tenacity>=9.1.2", |
| "shipyard-python-sdk>=0.2.4", |
| "shipyard-neo-sdk>=0.2.0", |
| "python-socks>=2.8.0", |
| "packaging>=24.2", |
| ] |
|
|
| [dependency-groups] |
| dev = [ |
| "commitizen>=4.9.1", |
| "pytest>=8.4.1", |
| "pytest-asyncio>=1.1.0", |
| "pytest-cov>=6.2.1", |
| "ruff>=0.15.0", |
| ] |
|
|
| [project.scripts] |
| astrbot = "astrbot.cli.__main__:cli" |
|
|
| [tool.ruff] |
| exclude = ["astrbot/core/utils/t2i/local_strategy.py", "astrbot/api/all.py", "tests"] |
| line-length = 88 |
| target-version = "py310" |
|
|
| [tool.ruff.lint] |
| select = [ |
| "F", |
| "W", |
| "E", |
| "ASYNC", |
| "C4", |
| "Q", |
| "I", |
| "UP", |
| |
| ] |
| ignore = [ |
| "F403", |
| "F405", |
| "E501", |
| "ASYNC230", |
| "ASYNC240", |
| ] |
|
|
| [tool.pyright] |
| typeCheckingMode = "basic" |
| pythonVersion = "3.10" |
| reportMissingTypeStubs = false |
| reportMissingImports = false |
| include = ["astrbot"] |
| exclude = ["dashboard", "node_modules", "dist", "data", "tests"] |
|
|
| [tool.hatch.metadata] |
| allow-direct-references = true |
|
|
| |
| [tool.hatch.build.targets.wheel] |
| artifacts = ["astrbot/dashboard/dist/**"] |
|
|
| |
| [tool.hatch.build.hooks.custom] |
| path = "scripts/hatch_build.py" |
|
|
| [build-system] |
| requires = ["hatchling"] |
| build-backend = "hatchling.build" |
|
|