content: [build-system]
  build-backend = "hatchling.build"
  requires = [
    "hatch-vcs>=0.5",
    "hatchling>=1.27",
  ]
  
  [project]
  name = "tox"
  description = "tox is a generic virtualenv management and test command line tool"
  readme.content-type = "text/markdown"
  readme.file = "README.md"
  keywords = [
    "environments",
    "isolated",
    "testing",
    "virtual",
  ]
  license = "MIT"
  maintainers = [
    { name = "Anthony Sottile", email = "asottile@umich.edu" },
    { name = "Bernát Gábor", email = "gaborjbernat@gmail.com" },
    { name = "Jürgen Gmach", email = "juergen.gmach@googlemail.com" },
    { name = "Oliver Bestwalter", email = "oliver@bestwalter.de" },
  ]
  authors = [
    { name = "Bernát Gábor", email = "gaborjbernat@gmail.com" },
  ]
  requires-python = ">=3.10"
  classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Framework :: tox",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: MIT License",
    "Operating System :: MacOS :: MacOS X",
    "Operating System :: Microsoft :: Windows",
    "Operating System :: POSIX",
    "Programming Language :: Python :: 3 :: Only",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: 3.14",
    "Topic :: Software Development :: Libraries",
    "Topic :: Software Development :: Testing",
    "Topic :: Utilities",
  ]
  dynamic = [
    "version",
  ]
  dependencies = [
    "cachetools>=6.2",
    "chardet>=5.2",
    "colorama>=0.4.6",
    "filelock>=3.20",
    "packaging>=25",
    "platformdirs>=4.5",
    "pluggy>=1.6",
    "pyproject-api>=1.9.1",
    "tomli>=2.3; python_version<'3.11'",
    "typing-extensions>=4.15; python_version<'3.11'",
    "virtualenv>=20.34",
  ]
  urls.Documentation = "https://tox.wiki"
  urls.Homepage = "http://tox.readthedocs.org"
  urls."Release Notes" = "https://tox.wiki/en/latest/changelog.html"
  urls.Source = "https://github.com/tox-dev/tox"
  urls.Tracker = "https://github.com/tox-dev/tox/issues"
  scripts.tox = "tox.run:run"
  
  [dependency-groups]
  dev = [
    { include-group = "docs" },
    { include-group = "test" },
    { include-group = "type" },
  ]
  test = [
    "build[virtualenv]>=1.3",
    "covdefaults>=2.3",
    "coverage>=7.10.7",
    "detect-test-pollution>=1.2",
    "devpi-process>=1.0.2",
    "diff-cover>=9.7.1",
    "distlib>=0.4",
    "flaky>=3.8.1",
    "hatch-vcs>=0.5",
    "hatchling>=1.27",
    "pdm-backend>=2.4.5",
    "psutil>=7.1",
    "pytest>=8.4.2",
    "pytest-cov>=7",
    "pytest-mock>=3.15.1",
    "pytest-xdist>=3.8",
    "re-assert>=1.1",
    "setuptools>=80.9",
    "time-machine>=2.19; implementation_name!='pypy'",
    "wheel>=0.45.1",
  ]
  type = [
    "mypy==1.18.2",
    "types-cachetools>=6.2.0.20250827",
    "types-chardet>=5.0.4.6",
    { include-group = "test" },
  ]
  docs = [
    "furo>=2025.9.25",
    "sphinx>=8.2.3",
    "sphinx-argparse-cli>=1.20.1",
    "sphinx-autodoc-typehints>=3.5",
    "sphinx-copybutton>=0.5.2",
    "sphinx-inline-tabs>=2023.4.21",
    "sphinxcontrib-towncrier>=0.2.1a0",
    "towncrier>=25.8",
  ]
  fix = [
    "pre-commit-uv>=4.1.5",
  ]
  pkg-meta = [
    "check-wheel-contents>=0.6.3",
    "twine>=6.2",
    "uv>=0.9",
  ]
  release = [
    "gitpython>=3.1.45",
    "packaging>=25",
    "towncrier>=25.8",
  ]
  
  [tool.hatch]
  build.dev-mode-dirs = [
    "src",
  ]
  build.hooks.vcs.version-file = "src/tox/version.py"
  build.targets.sdist.include = [
    "/src",
    "/tests",
    "/tox.toml",
  ]
  version.source = "vcs"
  
  [tool.ruff]
  line-length = 120
  format.preview = true
  format.docstring-code-line-length = 100
  format.docstring-code-format = true
  lint.select = [
    "ALL",
  ]
  lint.ignore = [
    "ANN401",  # Dynamically typed expressions (typing.Any) are disallowed in `arg`"
    "COM812",  # conflicts with formatter
    "CPY",     # No copyright header
    "D",       # ignore documentation for now
    "D203",    # `one-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible
    "D212",    # `multi-line-summary-first-line` (D212) and `multi-line-summary-second-line` (D213) are incompatible
    "DOC201",  # no restructuredtext support yet
    "DOC402",  # no restructuredtext support yet
    "DOC501",  # broken with sphinx docs
    "INP001",  # no implicit namespaces here
    "ISC001",  # conflicts with formatter
    "LOG015",  # we require use of the root logger for reporting
    "PLR0914", ## Too many local variables
    "PLR0917", ## Too many positional arguments
    "S104",    # Possible binding to all interfaces
    "S404",    # Using subprocess is alright.
    "S603",    # Using subprocess is alright.
  ]
  lint.per-file-ignores."tests/**/*.py" = [
    "D",       # don't care about documentation in tests
    "FBT",     # don't care about booleans as positional arguments in tests
    "INP001",  # no implicit namespace
    "PLR2004", # Magic value used in comparison, consider replacing with a constant variable
    "S101",    # asserts allowed in tests
    "S603",    # `subprocess` call: check for execution of untrusted input
  ]
  lint.isort = { known-first-party = [
    "tox",
    "tests",
  ], required-imports = [
    "from __future__ import annotations",
  ] }
  lint.preview = true
  
  [tool.codespell]
  builtin = "clear,usage,en-GB_to_en-US"
  write-changes = true
  skip = "*.svg"
  ignore-words = "ignore-words.txt"
  count = true
  
  [tool.pyproject-fmt]
  max_supported_python = "3.14"
  
  [tool.pytest.ini_options]
  testpaths = [
    "tests",
  ]
  addopts = "--no-success-flaky-report"
  verbosity_assertions = 2
  filterwarnings = [
    "error",
    "ignore:unclosed database in <sqlite3.Connection object at:ResourceWarning",
    "ignore:unclosed file <_io.TextIOWrapper:ResourceWarning",
  ]
  tmp_path_retention_policy = "failed"
  
  [tool.coverage]
  html.show_contexts = true
  html.skip_covered = false
  paths.source = [
    "src",
    ".tox*/*/lib/python*/site-packages",
    ".tox*/pypy*/site-packages",
    ".tox*\\*\\Lib\\site-packages",
    "*/src",
    "*\\src",
  ]
  report.fail_under = 88
  report.omit = [
    "src/tox/config/cli/for_docs.py",
    "tests/execute/local_subprocess/bad_process.py",
    "tests/type_check/*",
  ]
  run.parallel = true
  run.plugins = [
    "covdefaults",
  ]
  
  [tool.towncrier]
  name = "tox"
  filename = "docs/changelog.rst"
  directory = "docs/changelog"
  title_format = false
  issue_format = ":issue:`{issue}`"
  template = "docs/changelog/template.jinja2"
  # possible types, all default: feature, bugfix, doc, removal, misc
  
  [tool.mypy]
  show_error_codes = true
  strict = true
  overrides = [
    { module = [
      "colorama.*",
      "coverage.*",
      "distlib.*",
      "flaky.*",
      "importlib_metadata.*",
      "pluggy.*",
      "psutil.*",
      "re_assert.*",
      "virtualenv.*",
    ], ignore_missing_imports = true },
  ]
  