[tool.poetry]
name = "kanidm"
version = "1.0.1"
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.group.dev.dependencies]
ruff = ">=0.5.1,<0.9.8"
pytest = "^8.3.4"
mypy = "^1.14.1"
types-requests = "^2.32.0.20241016"
pytest-aiohttp = "^1.1.0"
pytest-mock = "^3.14.0"
types-toml = "^0.10.8.20240310"
pylint-pydantic = "^0.3.5"
coverage = "^7.6.10"
mkdocs = "^1.6.1"
mkdocs-material = "^9.6.1"
mkdocstrings = ">=0.27,<0.29"
mkdocstrings-python = "^1.13.0"
pook = "^2.1.3"

[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"