[project] name = "qqbotsdk-py" version = "0.2.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