Files
AstrBot/pyproject.toml
united_pooh eb94f21828 feat(cli): normalize plugin init skeletons
Add interactive plugin init prompts and normalize generated plugin names to the astrbot_plugin_ convention.
Update CLI tests for the new skeleton layout and ignore generated plugin directories in git and coverage tooling.
Also include related runtime logging adjustments from the current worktree.
2026-03-14 21:07:07 +08:00

89 lines
2.0 KiB
TOML

[build-system]
requires = ["setuptools>=80", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "astrbot-sdk"
version = "0.1.0"
description = "AstrBot SDK with v4 runtime and legacy compatibility surfaces"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"aiohttp>=3.13.2",
"anthropic>=0.72.1",
"certifi>=2025.10.5",
"click>=8.3.0",
"docstring-parser>=0.17.0",
"google-genai>=1.50.0",
"loguru>=0.7.3",
"openai>=2.7.2",
"pydantic>=2.12.3",
"pyyaml>=6.0.3",
]
[project.scripts]
astr = "astrbot_sdk.cli:cli"
astrbot-sdk = "astrbot_sdk.cli:cli"
[tool.setuptools]
package-dir = {"" = "src-new"}
[tool.setuptools.packages.find]
where = ["src-new"]
# ============================================================
# Pytest Configuration
# ============================================================
[project.optional-dependencies]
test = [
"pytest>=8.0.0",
"pytest-asyncio>=0.24.0",
"pytest-cov>=5.0.0",
]
[tool.pytest.ini_options]
testpaths = ["tests_v4"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
addopts = [
"-v",
"--tb=short",
"--strict-markers",
]
markers = [
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
"integration: marks tests as integration tests",
"unit: marks tests as unit tests",
]
filterwarnings = [
"ignore::DeprecationWarning",
"ignore::PendingDeprecationWarning",
]
# ============================================================
# Coverage Configuration
# ============================================================
[tool.coverage.run]
source = ["src-new/astrbot_sdk"]
branch = true
omit = [
"*/tests/*",
"*/__pycache__/*",
"*/_legacy_api.py",
"*/plugins/*"
]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"def __repr__",
"raise AssertionError",
"raise NotImplementedError",
"if __name__ == .__main__.:",
"if TYPE_CHECKING:",
]
show_missing = true