content: [tool.poetry]
  name = "amt"
  version = "0.1.0"
  description = ""
  authors = ["ai-validatie-team <ai-validatie@minbzk.nl>"]
  readme = "README.md"
  license = "EUPL-1.2"
  repository = "https://github.com/MinBZK/amt"
  keywords = ["AI", "Validation", "Transparency", "Algorithm"]
  classifiers = [
      "Development Status :: 3 - Alpha",
      "Framework :: FastAPI",
      "Topic :: Software Development :: Libraries :: Python Modules",
      "Programming Language :: Python :: 3",
      "Topic :: Scientific/Engineering :: Artificial Intelligence",
      "Typing :: Typed"
  ]
  package-mode = false
  
  [tool.poetry.dependencies]
  python = "^3.12"
  fastapi = "^0.117.1"
  alembic = "^1.16.5"
  pydantic = "2.11.9"
  jinja2 = "^3.1.6"
  pydantic-settings = "^2.10.1"
  psycopg2-binary = "^2.9.10"
  uvicorn = {extras = ["standard"], version = "^0.36.0"}
  pyyaml = "^6.0.1"
  babel = "^2.17.0"
  httpx = "^0.28.1"
  pyyaml-include = "^2.2"
  click = "^8.3.0"
  python-ulid = {extras = ["pydantic"], version = "^3.1.0"}
  fastapi-csrf-protect = "^1.0.7"
  sqlalchemy = {extras = ["asyncio"], version = "^2.0.43"}
  sqlalchemy-utils = "^0.42.0"
  liccheck = "^0.9.2"
  authlib = "^1.6.4"
  aiosqlite = "^0.21.0"
  asyncpg = "^0.30.0"
  async-lru = "^2.0.5"
  jinja2-base64-filters = "^0.1.4"
  python-multipart = "^0.0.20"
  minio = "^7.2.16"
  poetry = "^2.2.1"
  
  
  [tool.poetry.group.test.dependencies]
  pytest = "^8.4.2"
  pytest-asyncio = "^1.2.0"
  nest-asyncio = "^1.6.0"
  pytest-mock = "^3.15.1"
  coverage = "^7.10.7"
  playwright = "^1.55.0"
  pytest-playwright = "^0.7.1"
  pytest-httpx = "^0.35.0"
  freezegun = "^1.5.5"
  vcrpy = "^7.0.0"
  pytest-minio-mock = "^0.4.19"
  
  
  [tool.poetry.group.dev.dependencies]
  ruff = "^0.13.1"
  pre-commit = "^4.3.0"
  polib = "^1.2.0"
  pyright = "^1.1.405"
  liccheck = "^0.9.2"
  setuptools = "^80.9.0"
  types-pyyaml = "^6.0.12.20250915"
  djlint = "^1.36.1"
  
  
  [tool.poetry.urls]
  "Issue Tracker" = "https://github.com/MinBZK/amt/issues"
  
  [build-system]
  requires = ["poetry-core"]
  build-backend = "poetry.core.masonry.api"
  
  # Ruff settings: https://docs.astral.sh/ruff/configuration/
  [tool.ruff]
  line-length = 120
  target-version = "py312"
  src = ["amt","tests"]
  exclude = ["amt/migrations"]
  
  [tool.ruff.format]
  line-ending = "lf"
  
  [tool.ruff.lint]
  select = ["I", "SIM", "B", "UP", "F", "E", "S", "C90", "DTZ", "LOG", "PIE", "PT", "ERA", "W", "C", "TRY", "RUF", "ANN"]
  fixable = ["ALL"]
  task-tags = ["TODO"]
  ignore = ["TRY003"]
  
  [tool.ruff.lint.per-file-ignores]
  "tests/**.py" = ["S101", "ANN201"]
  
  [tool.ruff.lint.mccabe]
  max-complexity = 8
  
  [tool.pyright]
  pythonVersion = "3.12"
  typeCheckingMode = "strict"
  reportMissingImports = true
  reportMissingTypeStubs = true
  reportUnnecessaryIsInstance = false
  exclude = [
      "amt/migrations",
      ".venv",
      "node_modules"
  ]
  
  [tool.coverage.run]
  branch = true
  command_line = "-m pytest"
  relative_files = true # needed for sonarcloud code coverage
  omit = [
      "tests/*"
  ]
  concurrency = ["greenlet", "thread"]
  
  [tool.coverage.report]
  fail_under = 90
  
  [tool.coverage.html]
  directory = "htmlcov"
  title = "amt"
  
  
  [tool.pytest.ini_options]
  testpaths = [
      "tests"
  ]
  addopts = "--strict-markers -v -q --tracing on"
  filterwarnings = [
      "ignore::UserWarning"
  ]
  log_cli = true
  log_cli_level = "INFO"
  faulthandler_timeout = 60
  markers = [
     "slow: marks tests as slow",
     "enable_auth: marks tests that require authentication"
  ]
  
  
  [tool.liccheck]
  level = "PARANOID"
  dependencies = true
  authorized_licenses = [
      "Apache Software",
      "Artistic",
      "BSD",
      "BSD-3-Clause",
      "GNU General Public License v2 or later (GPLv2+)",
      "GNU General Public License v3 or later (GPLv3+)",
      "GNU General Public License (GPL)",
      "GNU Library or Lesser General Public License (LGPL)",
      "MIT",
      "The Unlicense (Unlicense)",
      "ISC License (ISCL)",
      "Mozilla Public License 2.0 (MPL 2.0)",
      "Python Software Foundation",
      "Public Domain"
  ]
  