[project] name = "nonebot-plugin-tetris-stats" version = "1.6.2" 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", "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-session>=0.3.2", "nonebot-plugin-session-orm>=0.2.0", "nonebot-plugin-user>=0.4.4", "nonebot-plugin-userinfo>=0.2.6", "nonebot2[fastapi]>=2.3.3", "pandas>=2.2.3", "pillow>=11.0.0", "playwright>=1.48.0", "rich>=13.9.3", "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", "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 "TCH", # 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 处理, 剩余的都是字符串 "ANN101", # 由 type checker 自动推断 "ANN102", # 由 type checker 自动推断 "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" [tool.bumpversion] current_version = "1.6.2" 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"]