content: [tool.coverage.run]
  branch = true
  omit = [
    "opencodelists/asgi.py",
    "opencodelists/django_test_runner.py",
    "opencodelists/settings.py",
    "opencodelists/wsgi.py",
    "staticfiles",
    "*/migrations/*",
    "coding_systems/snomedct/parser_utils/*",
    "scripts/fetch_vmp_prev.py"
  ]
  
  # Required to get full coverage when using Playwright
  concurrency = ["greenlet", "thread"]
  
  [tool.coverage.report]
  skip_covered = true
  
  [tool.coverage.html]
  
  [tool.pytest.ini_options]
  DJANGO_SETTINGS_MODULE = "opencodelists.settings"
  addopts = "--tb=native --ignore=node_modules --no-migrations --strict-markers"
  filterwarnings = [
    "ignore:The FORMS_URLFIELD_ASSUME_HTTPS transitional setting is deprecated.",
  ]
  markers = [
    "functional: tests that use Playwright in functional tests",
  ]
  
  # This is the pytest-django default. We're setting it explicitly, to
  # make it clear that tests are not run in debug mode.
  django_debug_mode = false
  
  [tool.ruff]
  line-length = 88
  exclude = [
    ".direnv",
    ".git",
    ".github",
    ".ipynb_checkpoints",
    ".pytest_cache",
    ".venv",
    "__pycache__",
    "assets",
    "coding_systems/snomedct/parser_utils/",
    "coverage",
    "deploy",
    "docker",
    "docs",
    "htmlcov",
    "*/migrations/",
    "node_modules",
    "static",
    "staticfiles",
    "venv",
  ]
  target-version = "py312"
  
  [tool.ruff.lint]
  extend-select = [
    "I",  # isort
    "INP",  # flake8-no-pep420
    "ISC",  # flake8-implicit-str-concat
    "UP",  # pyupgrade
    "W",  # pycodestyle warning
  ]
  extend-ignore = [
    "E501",
    "E731",
  ]
  
  [tool.ruff.lint.isort]
  lines-after-imports = 2
  
  [tool.ruff.lint.per-file-ignores]
  "gunicorn.conf.py" = ["INP001"]
  "manage.py" = ["INP001"]
  "codelists/views/__init__.py" = ["F401"]
  "opencodelists/views/__init__.py" = ["F401"]
  