mirror of
https://github.com/kevinveenbirkenbach/docker-volume-backup.git
synced 2026-08-20 13:12:48 +00:00
87 lines
2.7 KiB
TOML
87 lines
2.7 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=69", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "backup-docker-to-local"
|
|
version = "5.0.0"
|
|
description = "Backup Docker volumes to local with rsync and optional DB dumps."
|
|
readme = "README.md"
|
|
requires-python = ">=3.9"
|
|
license = { text = "AGPL-3.0-or-later" }
|
|
authors = [{ name = "Kevin Veen-Birkenbach" }]
|
|
|
|
dependencies = [
|
|
"pandas",
|
|
"dirval",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
# Pinned: a ruff minor bump changes which rules fire, and `make test` gates on
|
|
# a clean run, so an unpinned lint would fail the suite on an unrelated day.
|
|
lint = ["ruff==0.16.1"]
|
|
|
|
[project.scripts]
|
|
baudolo = "baudolo.backup.__main__:main"
|
|
baudolo-restore = "baudolo.restore.__main__:main"
|
|
baudolo-seed = "baudolo.seed.__main__:main"
|
|
|
|
[tool.setuptools]
|
|
package-dir = { "" = "src" }
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
exclude = ["tests*"]
|
|
|
|
[tool.setuptools.package-data]
|
|
"baudolo.restore.db" = ["*.sql"]
|
|
|
|
[tool.ruff]
|
|
respect-gitignore = true
|
|
# The package still declares >=3.9, so pyupgrade must not propose 3.10+ syntax.
|
|
target-version = "py39"
|
|
exclude = ["build", "dist", "*.egg-info", ".venv", "venv"]
|
|
|
|
[tool.ruff.lint]
|
|
# Adopted from infinito-nexus-core so both repositories are held to one bar;
|
|
# see that project's pyproject.toml for what each selector buys.
|
|
select = [
|
|
"E", "F", "I", "B", "UP", "RUF", "SIM", "C4", "PERF", "RET", "PIE",
|
|
"T10", "PGH", "EXE", "RSE", "ICN", "DTZ",
|
|
"TID", "LOG", "G",
|
|
"S",
|
|
"PTH",
|
|
"FURB", "W", "FA", "YTT", "A", "ISC", "SLOT", "FLY",
|
|
"PYI",
|
|
"TC", "N",
|
|
"PLE0605",
|
|
"PLW1510", "PLW2901", "PLW0108", "PLW0603",
|
|
"PLR5501", "PLC0207", "PLR1722", "PLR1714",
|
|
"TRY002", "TRY004", "TRY300", "TRY301",
|
|
"BLE001",
|
|
]
|
|
|
|
# E501: `ruff format` reflows what it can; the rest is unsplittable literals.
|
|
# RUF001/002/003: the prose uses em-dashes deliberately, not homoglyphs.
|
|
# S603/S607: this tool's whole job is running `docker` / dump binaries from
|
|
# PATH in list form, which is already injection-safe.
|
|
# PTH207/PTH208: changing `glob.glob`/`os.listdir` return shapes needs a
|
|
# per-call-site review, not a blanket rewrite.
|
|
ignore = [
|
|
"E501",
|
|
"RUF001", "RUF002", "RUF003",
|
|
"S603", "S607",
|
|
"PTH207", "PTH208",
|
|
]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
# Test code legitimately uses what flake8-bandit flags in production code:
|
|
# asserts, dummy credentials, /tmp fixtures, broad excepts in teardown, and
|
|
# SQL built from fixture names (S608) to set the databases under test up.
|
|
"tests/**" = [
|
|
"S101", "S102", "S105", "S106", "S108", "S110", "S112", "S608", "BLE001",
|
|
]
|
|
|
|
# The e2e helpers package is a deliberate re-export aggregator.
|
|
"tests/e2e/helpers/__init__.py" = ["F403"]
|