modify-repos/pyproject.toml
2025-01-14 14:35:23 -08:00

146 lines
2.9 KiB
TOML

[project]
name = "modify-repos"
version = "0.2.0"
description = "Apply changes across multiple repos at once."
readme = "README.md"
authors = [{ name = "David Lord" }]
license = "MIT"
license-files = ["LICENSE.txt"]
requires-python = "~=3.13.0"
dependencies = [
"click>=8.1.8",
"jinja2>=3.1.5",
"platformdirs>=4.3.6",
]
[build-system]
requires = ["pdm-backend>=2.4.3"]
build-backend = "pdm.backend"
[dependency-groups]
dev = [
"mypy>=1.14.1",
"pre-commit>=4.0.1",
"pyright>=1.1.391",
"pytest>=8.3.4",
"ruff>=0.8.6",
"tox>=4.23.2",
"tox-uv>=1.17.0",
]
pre-commit = [
"pre-commit>=4.0.1",
]
typing = [
"mypy>=1.14.1",
"pyright>=1.1.391",
]
docs = [
"furo>=2024.8.6",
"myst-parser>=4.0.0",
"sphinx>=8.1.3",
"sphinx-autodoc2>=0.5.0",
]
docs-auto = [
"sphinx-autobuild>=2024.10.3",
]
gha-update = [
"gha-update>=0.1.0",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
filterwarnings = [
"error",
]
[tool.coverage.run]
branch = true
source = ["modify_repos", "tests"]
[tool.coverage.paths]
source = ["src", "*/site-packages"]
[tool.mypy]
python_version = "3.13"
files = ["src"]
show_error_codes = true
pretty = true
strict = true
[tool.pyright]
pythonVersion = "3.13"
include = ["src"]
typeCheckingMode = "strict"
[tool.ruff]
src = ["src"]
fix = true
show-fixes = true
output-format = "full"
[tool.ruff.lint]
select = [
"B", # flake8-bugbear
"E", # pycodestyle error
"F", # pyflakes
"I", # isort
"UP", # pyupgrade
"W", # pycodestyle warning
]
[tool.ruff.lint.isort]
force-single-line = true
order-by-type = false
[tool.gha-update]
tag-only = [
"slsa-framework/slsa-github-generator",
]
[tool.tox]
env_list = ["style", "typing", "docs"]
[tool.tox.env_run_base]
runner = "uv-venv-lock-runner"
package = "wheel"
wheel_build_env = ".pkg"
constrain_package_deps = true
use_frozen_constraints = true
[tool.tox.env.style]
dependency_groups = ["pre-commmit"]
skip_install = true
commands = [["pre-commit", "run", "--all-files"]]
[tool.tox.env.typing]
dependency_groups = ["typing"]
commands = [
["mypy"],
["pyright"],
["pyright", "--verifytypes", "modify_repos", "--ignoreexternal"],
]
[tool.tox.env.docs]
dependency_groups = ["docs"]
commands = [["sphinx-build", "-E", "-W", "-b", "dirhtml", "docs", "docs/_build/dirhtml"]]
[tool.tox.env.docs-auto]
dependency_groups = ["docs", "docs-auto"]
commands = [["sphinx-autobuild", "-W", "-b", "dirhtml", "--watch", "src", "docs", "docs/_build/dirhtml"]]
[tool.tox.env.update-actions]
labels = ["update"]
dependency_groups = ["gha-update"]
skip_install = true
commands = [["gha-update"]]
[tool.tox.env.update-pre_commit]
labels = ["update"]
dependency_groups = ["pre-commit"]
skip_install = true
commands = [["pre-commit", "autoupdate", "--freeze", "-j4"]]
[tool.tox.env.update-requirements]
labels = ["update"]
skip_install = true
commands = [["uv", "sync", { replace = "posargs", default = ["-U"], extend = true }]]