[tool.poetry]
name = "kanidm"
version = "1.0.0"
description = "Kanidm client library"
license = "MPL-2.0"

authors = ["James Hodgkinson <james@terminaloutcomes.com>"]

readme = "README.md"
repository = "https://github.com/kanidm/kanidm"
homepage = "https://kanidm.com/"

packages = [{ include = "kanidm" }]

keywords = ["kanidm", "idm", "api"]
classifiers = [
    "Development Status :: 3 - Alpha",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Operating System :: OS Independent",
]
[tool.poetry.dependencies]
python = "^3.9"
toml = "^0.10.2"
pydantic = ">=2.0.0,<3.0.0"
aiohttp = "^3.8.1"
Authlib = "^1.2.0"

[tool.poetry.dev-dependencies]
mypy = "^1.12"
pytest = "^8.3.3"
types-toml = "^0.10.8"
pylint-pydantic = "^0.3.2"
coverage = "^7.6.3"
pylint-pytest = "^1.1.7"
pytest-asyncio = "^0.24.0"
pytest-mock = "^3.14.0"
pytest-aiohttp = "^1.0.5"
black = "^24.10.0"
mkdocs = "^1.5.3"
mkdocs-material = "^9.5.42"
mkdocstrings = "^0.26.2"
mkdocstrings-python = "^1.12.2"
pook = "^2.1.1"

[tool.poetry.group.dev.dependencies]
ruff = ">=0.5.1,<0.7.1"

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

[tool.pylint.MASTER]
max-line-length = 150
disable = "W0511,raise-missing-from"
extension-pkg-allow-list = "pydantic"
# https://github.com/samuelcolvin/pydantic/issues/1961#issuecomment-759522422
load-plugins = "pylint_pydantic,pylint_pytest"

[tool.ruff]
line-length = 150

[tool.ruff.lint.per-file-ignores]
"tests/*.py" = [
    "F401", # unused import, reused fixtures across all tests
    "F811", # pytest fixtures
]


[tool.pytest.ini_options]
asyncio_mode = "auto"
markers = [
    "network: Tests that require network access and a working backend server",
    "interactive: Requires specific config and a working backend server",
]

[tool.coverage.run]
source = ["kanidm"]
omit = ["tests"]

[tool.mypy]
plugins = "pydantic.mypy"
