content: [envs.all]
  
  [[envs.all.matrix]]
  python = ["3.10", "3.11", "3.12", "3.13"]
  
  [envs.changelog]
  dependencies = ["scriv"]
  detached = true
  installer = "uv"
  scripts = {add = "scriv create --add", collect = ["scriv collect --add", "- pre-commit run --files=CHANGELOG.md > /dev/null"]}
  
  [envs.default]
  dependencies = [
    # Remove the `click` installation constraint once the
    # https://github.com/pypa/hatch/issues/2050 is resolved.
    "click<8.3.0",
    "coverage[toml]>=6.5",
    "pytest",
    "pytest-mock",
    "pytest-rerunfailures",
    "pytest-split",
    "jupyter"
  ]
  installer = "uv"
  
  [envs.default.scripts]
  lint = "pre-commit run {args} --all-files"
  pip = '"{env:HATCH_UV}" pip {args}'
  prep-release = [
    "hatch version release",
    "hatch run changelog:collect",
    "hatch run changelog:add",
    'echo "Now raise a PR to merge into main with title: [Release] Release of vizro-mcp $(hatch version)"'
  ]
  pypath = "python -c 'import sys; print(sys.executable)'"
  test = "pytest tests --headless {args}"
  test-unit = "pytest tests/unit {args}"
  test-unit-coverage = [
    "coverage run -m pytest tests/unit {args}",
    "- coverage combine",
    "coverage report"
  ]
  
  [envs.docs]
  dependencies = [
    # Remove the `click` installation constraint once the
    # https://github.com/pypa/hatch/issues/2050 is resolved.
    "click<8.3.0",
    "mkdocs>=1.6",
    "mkdocs-material",
    "mkdocs-git-revision-date-localized-plugin>=1.2.5",
    "mkdocstrings[python]",
    "linkchecker",
    "mkdocs-pycafe",
    "mkdocs-glightbox"
  ]
  detached = true
  installer = "uv"
  
  [envs.docs.scripts]
  build = "mkdocs build --strict"
  # Disable warnings on the linkcheck so that HTTP redirects are accepted. We could ignore only that warning and specify
  # more advanced settings using a linkcheckerrc config file. openai.com doesn't seem to work well with linkchecking,
  # throwing 403 errors, but these are not real errors.
  # Ignoring urls for installing config to cursor and vscode using regular expressions.
  # Ignoring https://claude.ai/download page because it hase self signed ssl certificate, but linkcheker doesn't have an
  # option to ignore ssl for specific website.
  link-check = '''
  linkchecker site \
    --check-extern \
    --no-warnings \
    --ignore=404.html \
    --ignore-url=127.0.0.1 \
    --ignore-url=https://vizro.readthedocs.io/ \
    --ignore-url="^https://cursor\.com/install-mcp\?name=vizro-mcp&config=(.+)$" \
    --ignore-url="^https://insiders\.vscode\.dev/redirect/mcp/install\?name=vizro-mcp&config=(.+)$" \
    --ignore-url=https://claude.ai/download
  '''
  pip = '"{env:HATCH_UV}" pip {args}'
  pycafe-links = "../tools/pycafe/docs_links_filtering.sh"
  serve = "mkdocs serve --open"
  
  [publish.index]
  disable = true
  
  [version]
  path = "src/vizro_mcp/__init__.py"
  