qqbotsdk: QQ 官方机器人 SDK(协议层/DI/业务 API/测试/文档)

This commit is contained in:
snowy-yang committed 2026-09-11 19:49:17 +08:00
commit 0c364bf803
32 files changed
+3760

No files matched your search

+83
View File
@@ -0,0 +1,83 @@
[project]
name = "qqbotsdk"
version = "0.1.0"
description = "QQ 官方机器人 Python SDK(WebSocket / Webhook)"
license = "MIT"
license-files = ["LICENSE"]
readme = "README.md"
authors = [
{ name = "snowy-yang", email = "102860110+snowy-yang@users.noreply.github.com" },
]
requires-python = ">=3.13"
dependencies = [
"aiohttp>=3.14.3",
"apscheduler>=3.11.3",
"cryptography>=50.0.1",
"dishka>=1.10.1",
"loguru>=0.7.3",
"pyee>=14.0.0",
"python-dotenv>=1.2.3",
]
[project.scripts]
qqbotsdk = "qqbotsdk:main"
[build-system]
requires = ["uv_build>=0.12.7,<0.13.0"]
build-backend = "uv_build"
[dependency-groups]
dev = ["pyright>=1.1.411", "pytest>=8.3.0", "pytest-asyncio>=0.24.0", "ruff>=0.16.5"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
[tool.ruff]
target-version = "py313"
line-length = 88
indent-width = 4
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"F", # Pyflakes
"I", # isort
"N", # pep8-naming
"W", # pycodestyle warnings
"UP", # pyupgrade
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"SIM", # flake8-simplify
]
ignore = [
"E501", # line too long
"B008", # do not perform function calls in argument defaults
]
[tool.ruff.lint.pydocstyle]
convention = "google"
[tool.ruff.lint.isort]
known-first-party = ["qqbotsdk"]
[tool.ruff.lint.per-file-ignores]
"tests/**/*.py" = ["S"]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"
[tool.pyright]
typeCheckingMode = "standard"
pythonVersion = "3.13"
include = ["src"]
exclude = ["**/__pycache__", "**/.*", "**/node_modules", ".venv"]
reportMissingImports = true
reportMissingTypeStubs = false
reportUnknownParameterType = false
reportUnknownVariableType = false
reportUnknownMemberType = false