mirror of
https://github.com/snowy-yang/qqbotsdk.git
synced 2026-10-21 09:56:17 +00:00
bot.run() 同步启动、bot.start() 嵌入外部 asyncio 应用; bot.call_api 通用 REST、bot.api 类型化 API 面、bot.services 自定义组件注入; services 登记扩到 8 项(含 Bot 自身,可标注注入)。
99 lines
2.5 KiB
TOML
99 lines
2.5 KiB
TOML
[project]
|
||
name = "qqbotsdk-py"
|
||
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" },
|
||
]
|
||
keywords = ["qq", "qqbot", "bot", "sdk", "websocket", "webhook", "机器人"]
|
||
classifiers = [
|
||
"Development Status :: 4 - Beta",
|
||
"Intended Audience :: Developers",
|
||
"Natural Language :: Chinese (Simplified)",
|
||
"Operating System :: OS Independent",
|
||
"Programming Language :: Python :: 3",
|
||
"Programming Language :: Python :: 3.12",
|
||
"Programming Language :: Python :: 3.13",
|
||
"Topic :: Software Development :: Libraries :: Python Modules",
|
||
]
|
||
requires-python = ">=3.12"
|
||
dependencies = [
|
||
"aiohttp>=3.14.3",
|
||
"cryptography>=50.0.1",
|
||
"loguru>=0.7.3",
|
||
"python-dotenv>=1.2.3",
|
||
"ujson>=6.0.0",
|
||
]
|
||
|
||
[project.urls]
|
||
Homepage = "https://github.com/snowy-yang/qqbotsdk"
|
||
Documentation = "https://qqbotsdk.4i.hk"
|
||
Repository = "https://github.com/snowy-yang/qqbotsdk"
|
||
Changelog = "https://github.com/snowy-yang/qqbotsdk/blob/main/CHANGELOG.md"
|
||
|
||
[build-system]
|
||
requires = ["uv_build>=0.12.7,<0.13.0"]
|
||
build-backend = "uv_build"
|
||
|
||
[tool.uv.build-backend]
|
||
module-name = "qqbotsdk"
|
||
|
||
[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 = "py312"
|
||
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.12"
|
||
include = ["src"]
|
||
exclude = ["**/__pycache__", "**/.*", "**/node_modules", ".venv"]
|
||
reportMissingImports = true
|
||
reportMissingTypeStubs = false
|
||
reportUnknownParameterType = false
|
||
reportUnknownVariableType = false
|
||
reportUnknownMemberType = false
|