[build-system] requires = ["setuptools>=80", "wheel"] build-backend = "setuptools.build_meta" [project] name = "astrbot-sdk" version = "0.1.0" description = "Add your description here" 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" [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", ] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "def __repr__", "raise AssertionError", "raise NotImplementedError", "if __name__ == .__main__.:", "if TYPE_CHECKING:", ] show_missing = true