[project]
name = "abilian-devtools"
version = "0.7.4"
description = "A curated set of dependencies for quality software development"
readme = "README.md"
requires-python = ">=3.10,<4.0"
license = "MIT"
authors = [
    { name = "Stefane Fermigier", email = "sf@abilian.com" },
]
keywords = [
    "qa",
    "testing",
    "linting",
    "security",
    "supply_chain",
]
dependencies = [
    "black>=24.1.0",
    "cleez>=0.1.11",
    "deptry>=0.20",
    "dlint>=0.15.0",
    "docformatter>=1.7.5",
    "flake8-assertive>=2.1.0",
    "flake8-bandit>=4.1.1",
    "flake8-breakpoint>=1.1.0",
    "flake8-cognitive-complexity>=0.1.0",
    "flake8-datetimez>=20.10.0",
    "flake8-ecocode>=0.1.3",
    "flake8-functions>=0.0.8",
    "flake8-if-expr>=1.0.4",
    "flake8-isort>=6.1.1",
    "flake8-logging-format>=2024",
    "flake8-mutable>=1.2.0",
    "flake8-no-pep420>=2.7.0",
    "flake8-pep3101>=2.1.0",
    "flake8-pep585>=0.1.7",
    "flake8-pep604>=1.1.0",
    "flake8-pytest-style>=2",
    "flake8-pytest>=1.4",
    "flake8-super-call>=1.0.0",
    "flake8-super>=0.1.3",
    "flake8-tidy-imports>=4.10.0",
    "flake8-tuple>=0.4.1",
    "flake8>=7.0.0",
    "git-cliff",
    "invoke>=2.2.0",
    "isort>=5.13.2",
    "mypy>=1.8.0",
    "nox>=2023",
    "pip-audit>=2.7.0",
    "pip>=23",
    "pre-commit>=4",
    "profilehooks>=1",
    "pyright>=1.1.348",
    "pytest-cov>=5",
    "pytest-random-order>=1",
    "pytest-xdist>=3",
    "pytest>=8",
    "reuse>=4",
    "ruff>=0.5.1",
    "tomlkit>=0.12",
    "vulture>=2.11",
]

[project.urls]
Repository = "https://github.com/abilian/abilian-devtools"

[project.scripts]
adt = "abilian_devtools.cli:main"

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.uv]
dev-dependencies = [
    "scriv>=1.5.1",
    "types-invoke>=2.0.0.10",
    "snoop>=0.6",
    "devtools>=0.12.2",
    "docformatter>=1.7.5",
]

[tool.deptry]
exclude = [".nox", ".tox", "tests", "noxfile.py"]

[tool.deptry.per_rule_ignores]
DEP002 = [
  "black",
  "deptry",
  "docformatter",
  "flake8",
  "flake8-assertive",
  "flake8-bandit",
  "flake8-breakpoint",
  "flake8-bugbear",
  "flake8-cognitive-complexity",
  "flake8-comprehensions",
  "flake8-datetimez",
  "flake8-ecocode",
  "flake8-functions",
  "flake8-if-expr",
  "flake8-isort",
  "flake8-logging-format",
  "flake8-mutable",
  "flake8-no-pep420",
  "flake8-pep3101",
  "flake8-pep585",
  "flake8-pep604",
  "flake8-pytest",
  "flake8-pytest-style",
  "flake8-simplify",
  "flake8-super",
  "flake8-super-call",
  "flake8-tidy-imports",
  "flake8-tuple",
  "isort",
  "mypy",
  "nox",
  "pep8-naming",
  "pip",
  "pip-audit",
  "pre-commit",
  "profilehooks",
  "pyright",
  "pytest",
  "pytest-cov",
  "pytest-random-order",
  "pytest-xdist",
  "reuse",
  "ruff",
  # "safety",
  "vulture",
  "git-cliff",
  "dlint",
]


[tool.scriv]
version = "literal: pyproject.toml: tool.poetry.version"
format = "md"
categories = [
  "Removed",
  "Added",
  "Changed",
  "Deprecated",
  "Fixed",
  "Security",
  "Doc",
]

[tool.pyright]

[tool.bandit]
skips = [
  "B404", # blacklist
  "B603", # subprocess_without_shell_equals_true
]
