Ctrl K
ComunidadGuías…

pyproject.toml

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[project]
name = "AstrBot"
version = "4.29.4"
description = "Easy-to-use multi-platform LLM chatbot and development framework"
readme = "README.md"
license = { text = "AGPL-3.0-or-later" }
requires-python = ">=3.12"

keywords = ["AstrBot", "Agent", "Chatbot", "IM"]

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",
  "certifi>=2026.10.19",
  "chardet~=5.1.0",
  "loguru>=0.7.2",
  "cryptography>=44.0.3",
  "dashscope>=1.23.2",
  "deprecated>=1.2.18",
  "dingtalk-stream>=0.22.1",
  "docstring-parser>=0.16",
  "faiss-cpu>=1.14.3",
  "fastapi>=0.124.0",
  "filelock>=3.18.0",
  "google-genai>=1.56.0",
  "httpx[socks]>=0.28.1",
  "lark-oapi>=1.4.15",
  "mcp>=1.8.0,<2",
  "openai>=1.78.0",
  "ormsgpack>=1.9.1",
  "openpyxl>=3.1.5",
  "pandas>=2.2.0",
  "pillow>=11.2.1",
  "pip>=26.2.2",
  "psutil>=5.8.0,<7.2.0",
  "py-cord>=2.6.1",
  "pydantic>=2.12.5",
  "pydub>=0.25.1",
  "pyjwt>=2.10.1",
  "qrcode>=8.2",
  "quart>=0.20.0",
  "python-telegram-bot>=22.6",
  "qq-botpy==1.2.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",
  "pysocks>=1.7.1",
  "packaging>=24.2",
  "python-ripgrep==0.0.8 ; python_version < '3.14'",
  "python-docx>=1.2.0",
  "pywin32>=306 ; sys_platform == 'win32'",
  "pyotp>=2.9.0",
  "reportlab>=5.0.0",
  "xlrd>=2.0.2",
  "opentelemetry-api>=1.45.1,<2",
  "opentelemetry-sdk>=1.45.1,<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.22",
]

[project.scripts]
astrbot = "astrbot.cli.__main__:cli"

[project.urls]
Repository = "https://github.com/AstrBotDevs/AstrBot"

[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",     # Pyflakes
  "W",     # pycodestyle warnings
  "E",     # pycodestyle errors
  "ASYNC", # flake8-async
  "C4",    # flake8-comprehensions
  "Q",     # flake8-quotes
  "I",     # import-order
  "UP",    # pyupgrade
  # "SIM", # flake8-simplify 
]
ignore = [
  "F403",
  "F405",
  "E501",
  "ASYNC230", # TODO: handle ASYNC230 in AstrBot
  "ASYNC240", # TODO: handle ASYNC240 in AstrBot
]

[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

# Include bundled dashboard dist even though it is not tracked by VCS.
[tool.hatch.build]
artifacts = ["astrbot/dashboard/dist/**"]

# Custom build hook: builds the Vue dashboard and copies dist into the package.
[tool.hatch.build.hooks.custom]
path = "scripts/hatch_build.py"

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"