Files
nonebot-plugin-tetris-stats/pyproject.toml
2026-01-27 05:18:42 +08:00

190 lines
5.2 KiB
TOML

#:schema https://json.schemastore.org/pyproject.json
[project]
name = "nonebot-plugin-tetris-stats"
version = "1.11.0"
description = "一款基于 NoneBot2 的用于查询 Tetris 相关游戏数据的插件"
readme = "README.md"
authors = [{ name = "shoucandanghehe", email = "wallfjjd@gmail.com" }]
requires-python = ">=3.10"
dependencies = [
"aiocache>=0.12.3",
"aiofiles>=24.1.0",
"arclet-alconna<2",
"async-lru>=2.0.4",
"fake-useragent>=2.0.3",
"httpx>=0.27.2",
"jinja2>=3.1.4",
"lxml>=5.3.0",
"msgspec>=0.18.6",
"nonebot-plugin-alconna>=0.53.1",
"nonebot-plugin-apscheduler>=0.5.0",
"nonebot-plugin-localstore>=0.7.1",
"nonebot-plugin-orm>=0.7.6",
"nonebot-plugin-uninfo>=0.7.4",
"nonebot-plugin-user>=0.4.4",
"nonebot-plugin-waiter>=0.8.0",
"nonebot-session-to-uninfo>=0.0.2",
"nonebot2[fastapi]>=2.4.4",
"pandas>=2.2.3",
"pillow>=11.0.0",
"playwright>=1.48.0",
"rich>=13.9.3",
"strenum>=0.4.15",
"yarl>=1.16.0",
]
classifiers = [
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
keywords = ["nonebot2"]
[project.urls]
Homepage = "https://github.com/A-Minos/nonebot-plugin-tetris-stats"
Repository = "https://github.com/A-Minos/nonebot-plugin-tetris-stats"
Issues = "https://github.com/A-Minos/nonebot-plugin-tetris-stats/issues"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[dependency-groups]
dev = [
"basedpyright>=1.19.1",
"mypy>=1.13.0",
"nonebot-adapter-discord>=0.1.8",
"nonebot-adapter-kaiheila>=0.3.4",
"nonebot-adapter-onebot>=2.4.6",
"nonebot-adapter-qq>=1.5.3",
"nonebot-plugin-orm[postgresql]>=0.8.2",
"nonebot-plugin-tarina-lang-turbo>=0.1.1",
"ruff>=0.7.1",
]
typecheck = [
"pandas-stubs>=2.2.3.241009",
"types-aiofiles>=24.1.0.20240626",
"types-lxml>=2024.9.16",
"types-pillow>=10.2.0.20240822",
]
test = [
"nonebot-adapter-satori>=0.12.6",
"nonebot-plugin-orm[default]>=0.7.6",
"nonebot2[aiohttp,fastapi]>=2.3.3",
"nonebug>=0.4.1",
"pytest-asyncio>=0.24.0",
"pytest-cov>=6.0.0",
]
debug = ["matplotlib>=3.9.2", "memory-profiler>=0.61.0", "objprint>=0.2.3", "pyqt6>=6.7.1", "viztracer>=0.17.0"]
release = ["bump-my-version>=0.28.0"]
[tool.uv]
default-groups = ["dev", "typecheck"]
[tool.ruff]
line-length = 120
target-version = "py310"
[tool.ruff.lint]
select = [
"F", # pyflakes
"E", # pycodestyle errors
"W", # pycodestyle warnings
"C90", # mccabe
"I", # isort
"N", # PEP8-naming
"UP", # pyupgrade
"YTT", # flake8-2020
"ANN", # flake8-annotations
"ASYNC", # flake8-async
"S", # flake8-bandit
"BLE", # flake8-blind-except
"FBT", # flake8-boolean-trap
"B", # flake8-bugbear
"A", # flake8-builtins
"COM", # flake8-commas
"C4", # flake8-comprehensions
"DTZ", # flake8-datetimez
"T10", # flake8-debugger
"EM", # flake8-errmsg
"FA", # flake8-future-annotations
"ISC", # flake8-implicit-str-concat
"ICN", # flake8-import-conventions
"PIE", # flake8-pie
"T20", # flake8-print
"PYI", # flake8-pyi
"Q", # flake8-quotes
"RSE", # flake8-raise
"RET", # flake8-return
"SLF", # flake8-self
"SLOT", # flake8-slots
"SIM", # flake8-simplify
"TID", # flake8-tidy-imports
"TC", # flake8-type-checking
"ARG", # flake8-unused-arguments
"PTH", # flake8-use-pathlib
"ERA", # eradicate
"PD", # pandas-vet
"PGH", # pygrep-hooks
"PL", # pylint
"TRY", # tryceratops
"FLY", # flynt
"FAST", # FastAPI
"PERF", # Perflint
"FURB", # refurb
"RUF", # Ruff-specific rules
]
ignore = [
"E501", # 过长的行由 ruff format 处理, 剩余的都是字符串
"ANN202", # 向 NoneBot 注册的函数
"TRY003",
"COM812", # 强制尾随逗号
"TID252", # 相对导入
"ISC001", # format warning
]
flake8-quotes = { inline-quotes = "single", multiline-quotes = "double" }
[tool.ruff.lint.flake8-annotations]
mypy-init-return = true
[tool.ruff.lint.flake8-builtins]
builtins-ignorelist = ["id"]
[tool.ruff.format]
quote-style = "single"
[tool.basedpyright]
pythonVersion = "3.10"
pythonPlatform = "All"
defineConstant = { PYDANTIC_V2 = true }
typeCheckingMode = "standard"
reportExplicitAny = 'hint'
reportUnnecessaryTypeIgnoreComment = 'error'
reportImplicitOverride = 'error'
reportUnnecessaryComparison = 'error'
reportImplicitAbstractClass = 'error'
enableTypeIgnoreComments = false
[tool.bumpversion]
current_version = "1.11.0"
tag = true
sign_tags = true
tag_name = "{new_version}"
commit = true
message = ":bookmark: {new_version}"
[[tool.bumpversion.files]]
filename = "pyproject.toml"
search = "version = \"{current_version}\""
replace = "version = \"{new_version}\""
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "session"
[tool.nonebot.plugins]
nonebot-plugin-tetris-stats = ["nonebot_plugin_tetris_stats"]
nonebot-plugin-tarina-lang-turbo = ["nonebot_plugin_tarina_lang_turbo"]