[tool.poetry]
name = 'nonebot-plugin-tetris-stats'
version = '1.0.1'
description = '一款基于 NoneBot2 的用于查询 Tetris 相关游戏数据的插件'
authors = ['scdhh <wallfjjd@gmail.com>']
readme = 'README.md'
homepage = 'https://github.com/shoucandanghehe/nonebot-plugin-tetris-stats'
repository = 'https://github.com/shoucandanghehe/nonebot-plugin-tetris-stats'
license = 'AGPL-3.0'

[tool.poetry.dependencies]
python = '^3.10'
nonebot2 = { extras = ["fastapi"], version = "^2.3.0" }
lxml = '^5.1.0'
pandas = '>=1.4.3,<3.0.0'
playwright = '^1.41.2'
ujson = '^5.9.0'
aiofiles = "^23.2.1"
nonebot-plugin-orm = ">=0.1.1,<0.8.0"
nonebot-plugin-localstore = "^0.6.0"
httpx = "^0.27.0"
nonebot-plugin-alconna = ">=0.40"
nonebot-plugin-apscheduler = "^0.4.0"
aiocache = "^0.12.2"
zstandard = "^0.22.0"
jinja2 = "^3.1.3"
nonebot-plugin-userinfo = "^0.2.4"
pillow = "^10.3.0"

[tool.poetry.group.dev.dependencies]
mypy = '>=1.9'
types-ujson = '^5.9.0'
pandas-stubs = '>=1.5.2,<3.0.0'
ruff = '>=0.3.0'
types-aiofiles = "^23.2.0.20240106"
types-lxml = "^2024.2.9"
nonebot-plugin-orm = { extras = ["default"], version = ">=0.3,<0.8" }
nonebot-adapter-onebot = "^2.4.1"
nonebot-adapter-satori = "^0.11.4"
nonebot-adapter-kaiheila = "^0.3.4"
nonebot-adapter-discord = "^0.1.3"
types-pillow = "^10.2.0.20240423"

[tool.poetry.group.debug.dependencies]
objprint = '^0.2.2'
viztracer = "^0.16.2"

[build-system]
requires = ['poetry-core>=1.0.0']
build-backend = 'poetry.core.masonry.api'

[tool.ruff]
line-length = 120
target-version = "py310"

[tool.ruff.lint]
select = [
    'F',     # pyflakes
    'E',     # pycodestyle errors
    'W',     # pycodestyle warnings
    '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
    'C4',    # flake8-comprehensions
    'DTZ',   # flake8-datetimez
    'FA',    # flake8-future-annotations
    'ISC',   # flake8-implicit-str-concat
    'PIE',   # flake8-pie
    'T20',   # flake8-print
    'Q',     # flake8-quotes
    'RSE',   # flake8-raise
    'RET',   # flake8-return
    'SIM',   # flake8-simplify
    'PTH',   # flake8-use-pathlib
    'PD',    # pandas-vet
    'PL',    # pylint
    'TRY',   # tryceratops
    'FLY',   # flynt
    'PERF',  # Perflint
    'RUF',   # Ruff-specific rules
]
ignore = [
    'E501',   # 过长的行由 ruff format 处理, 剩余的都是字符串
    'ANN101', # 由 type checker 自动推断
    'ANN102', # 由 type checker 自动推断
    'ANN202', # 向 NoneBot 注册的函数
    'TRY003',
]
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.nonebot]
plugins = ['nonebot_plugin_tetris_stats']
