content: [build-system]
  requires = ["setuptools>=61.0"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "nix-hyperfine"
  version = "0.1.0"
  description = "Benchmarks Nix build and evaluation times using hyperfine"
  readme = "README.md"
  license = "MIT"
  authors = [
      { name = "nix-hyperfine contributors" }
  ]
  requires-python = ">=3.12"
  classifiers = [
      "Development Status :: 4 - Beta",
      "Environment :: Console",
      "Intended Audience :: Developers",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.12",
      "Topic :: Software Development :: Build Tools",
      "Topic :: System :: Software Distribution",
  ]
  
  [project.scripts]
  nix-hyperfine = "nix_hyperfine:main"
  
  [project.urls]
  Homepage = "https://github.com/yourusername/nix-hyperfine"
  Repository = "https://github.com/yourusername/nix-hyperfine"
  Issues = "https://github.com/yourusername/nix-hyperfine/issues"
  
  [tool.setuptools]
  packages = ["nix_hyperfine"]
  
  [tool.ruff]
  target-version = "py312"
  line-length = 100
  
  [tool.ruff.lint]
  select = ["ALL"]
  ignore = [
      "E501",  # line too long (handled by formatter)
      "T201",  # print found - we use print for user output
      "D203",  # 1 blank line required before class docstring (conflicts with D211)
      "D213",  # Multi-line docstring summary should start at the second line (conflicts with D212)
      "S101",  # assert statements in tests are fine
      "S603",  # subprocess calls are necessary for nix commands
      "FBT001", "FBT002",  # boolean arguments are reasonable in our context
      "EXE001",  # shebang without executable permission is fine for test files
      "TD002", "TD003",  # TODO requirements
      "FIX002",  # TODO requirements
      "PLR0913",  # too many arguments
      "C901",  # too complex
      "PLR0912",  # too many branches
      "PLR2004",  # magic value used in comparison
      "S607",  # subprocess with partial executable path
      "D101",  # missing docstring in public class
  ]
  
  [tool.ruff.format]
  quote-style = "double"
  indent-style = "space"
  
  [tool.mypy]
  python_version = "3.12"
  warn_return_any = true
  warn_unused_configs = true
  disallow_untyped_defs = true
  
  [[tool.mypy.overrides]]
  module = "pytest"
  ignore_missing_imports = true
  
  [tool.pytest.ini_options]
  testpaths = ["tests"]
  # Default options for pytest
  # Parallel execution is enabled by default when pytest-xdist is available
  addopts = [
      "-v",
      "-n", "auto"
  ]