[tool.black]
line-length = 79
target-version = ["py38", "py39", "py310", "py311"]
include = '\.pyi?$'
skip-string-normalization = true
extend-exclude = '''
'''

[tool.isort]
profile = "black"
line_length = 79
length_sort = true
skip_gitignore = true
force_sort_within_sections = true
extra_standard_library = ["typing_extensions"]

[tool.pytest.ini_options]
asyncio_mode = "auto"

[build-system]
requires = ["poetry-core>=1.2.0"]
build-backend = "poetry.core.masonry.api"

[tool.poetry]
name = "StarRailUID"
version = "0.1.0"
description = ""
authors = ["qwerdvd <2450899274@qq.com>"]
license = "GPL-3.0-or-later"
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.8.1"

[[tool.poetry.source]]
name = "USTC"
url = "https://pypi.mirrors.ustc.edu.cn/simple"
default = false
secondary = true

[tool.poetry.group.dev.dependencies]
flake8 = "^6.0.0"
black = "^23.1.0"
isort = "^5.12.0"
pre-commit = "^2.21.0"
pycln = "^2.1.2"

[tool.poetry.group.test.dependencies]
nonebug = "^0.3.0"
pytest = "^7.2.0"
pytest-asyncio = "^0.20.3"

[tool.ruff]
line-length = 79
select = [
  "E", "W",   # pycodestyle
  "F",        # pyflakes
  # "I",        # isort
  "RUF",      # ruff
  "TRY",      # tryceratops
  "UP",

  # pylint
  "PLW",      # Warning
  "PLR",      # Refactor
  "PLE",      # Error

  "PTH",      # flake8-use-pathlib
  "SLF",      # flake8-self
  "RET",      # flake8-return
  "RSE",      # flake8-raise
  "T20",      # flake8-print
  "PIE",      # flake8-pie
  "ISC",      # flake8-implicit-str-concat
  "C4",       # flake8-comprehensions
  "COM",      # flake8-commas
  "A",        # flake8-builtins
  "B",        # flake8-bugbear
  "ASYNC",    # flake8-async
  "Q",        # flake8-quotes
]
ignore = [
  "PLR2004",
  "A003",
  "E501",
  "COM812",
  "PLR0912",
  "PLR0915",
  "PLR0913",
  "PLR0911",
  "PLW0603",  # Using the global statement
  "TRY002",
  "TRY003"
]
exclude = [
  "gen.py",
  ".ruff_cache"
]
# Assume Python 3.8
target-version = "py38"

[tool.ruff.flake8-quotes]
inline-quotes = "single"
multiline-quotes = "single"
