content: [build-system]
  requires = ["setuptools"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "nixpkgs-review"
  description = "Review nixpkgs pull requests"
  version = "3.5.1"
  authors = [{ name = "Jörg Thalheim", email = "joerg@thalheim.io" }]
  license = { text = "MIT" }
  classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Environment :: Console",
    "Topic :: Utilities",
    "Intended Audience :: Developers",
    "Programming Language :: Python :: 3",
  ]
  
  [project.urls]
  Homepage = "https://github.com/Mic92/nixpkgs-review"
  
  [project.scripts]
  nixpkgs-review = "nixpkgs_review:main"
  nix-review = "nixpkgs_review:main"
  
  [tool.setuptools.packages]
  find = {}
  
  [tool.setuptools.package-data]
  nixpkgs_review = ["nix/*.nix"]
  
  
  [tool.ruff]
  target-version = "py312"
  line-length = 88
  
  lint.select = ["ALL"]
  lint.ignore = [
    # pydocstyle
    "D",
    # todo comments
    "TD",
    # fixmes
    "FIX",
  
    # Trailing comma missing
    "COM812",
    # Unnecessary `dict` call (rewrite as a literal)
    "C408",
    # Found commented-out code
    "ERA001",
    # Boolean-typed positional argument in function definition
    "FBT001",
    # Logging statement uses f-string
    "G004",
    # disabled on ruff's recommendation as causes problems with the formatter
    "ISC001",
    # Use of `assert` detected
    "S101",
    # `subprocess` call: check for execution of untrusted input
    "S603",
    # Starting a process with a partial executable path
    "S607",
  
    # Too many statements
    "PLR0915",
    # Too many arguments in function definition
    "PLR0913",
    "PLR0912", # Too many branches
    "PLR0911", # Too many return statements
  
    "E501",    # line too long
    "T201",    # `print` found
    "PLR2004", # Magic value used in comparison
  ]
  
  [tool.pytest.ini_options]
  addopts = "-n auto"
  
  [tool.mypy]
  python_version = "3.12"
  strict = true
  no_implicit_optional = true
  
  [[tool.mypy.overrides]]
  module = "argcomplete"
  ignore_missing_imports = true
  
  [tool.pylint.FORMAT]
  output-format = "colorized"
  
  [tool.pylint.messages_control]
  disable = [
      # Disable failure for TODO items in the codebase (code will always have TODOs).
      "fixme",
  
      # Annoying.
      "line-too-long",
  
      # Too many missing docstrings.
      "missing-docstring",
  
      # Not very important, maybe fix in the future.
      "invalid-name",
      "too-many-instance-attributes",
      "too-few-public-methods",
      "too-many-arguments",
      "too-many-locals",
  ]
  