[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "wikiglot"
version = "0.1.0"
description = "Yet another wiktionary parser"
readme = "README.md"
maintainers = [{ name = "Johan Larsson", email = "johanlarsson@outlook.com" }]
authors = [{ name = "Johan Larsson", email = "johanlarsson@outlook.com" }]
license = { file = "LICENSE" }
requires-python = ">=3.8"
dependencies = ["bs4", "requests"]
classifiers = [
  "Development Status :: 3 - Alpha",
  "License :: OSI Approved :: MIT License",
  "Operating System :: MacOS",
  "Operating System :: Microsoft :: Windows",
  "Operating System :: POSIX :: Linux",
  "Operating System :: POSIX",
  "Operating System :: Unix",
  "Programming Language :: Python :: 3 :: Only",
  "Programming Language :: Python :: 3.10",
  "Programming Language :: Python :: 3.11",
  "Programming Language :: Python :: 3.12",
  "Topic :: Scientific/Engineering",
]

[project.urls]
homepage = "https://github.com/jolars/wikiglot"
documentation = "https://jolars.github.io/wikiglot/"
changelog = "https://github.com/jolars/wikiglot/blob/main/CHANGELOG.md"
tracker = "https://github.com/jolars/wikiglot/issues"

[project.optional-dependencies]
docs = ["sphinx", "furo", "sphinx-copybutton", "myst-parser"]
tests = ["pytest", "sphinx"]

[tool.ruff.lint]
extend-select = [
  "B",      # flake8-bugbear
  "I",      # isort
  "ARG",    # flake8-unused-arguments
  "C4",     # flake8-comprehensions
  "EM",     # flake8-errmsg
  "ICN",    # flake8-import-conventions
  "PGH",    # pygrep-hooks
  "PIE",    # flake8-pie
  "PL",     # pylint
  "PT",     # flake8-pytest-style
  "PTH",    # flake8-use-pathlib
  "RET",    # flake8-return
  "RUF",    # Ruff-specific
  "SIM",    # flake8-simplify
  "TID251", # flake8-tidy-imports.banned-api
  "T20",    # flake8-print
  "UP",     # pyupgrade
  "YTT",    # flake8-2020
]
ignore = [
  "PLR",    # Design related pylint codes
  "PT004",  # Incorrect check, usefixtures is the correct way to do this
  "RUF012", # Would require a lot of ClassVar's
]

[tool.ruff.lint.pydocstyle]
convention = "numpy"

[tool.mypy]
plugins = "numpy.typing.mypy_plugin"
