mirror of
https://github.com/TZERO78/kopi-docka.git
synced 2026-06-19 07:37:12 +00:00
9746b6993e
Docs / help-text only. Flags PowerShell's `>` binary corruption pitfall in the --stream help text and in DISASTER_RECOVERY.md, plus a 7-Zip extraction note for AES-256 archives. Combines the 7 demo SVGs from v7.6.2 into one 113-second sequential animation to keep the README scrollable. No code path, config, or repository format changes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
147 lines
3.5 KiB
TOML
147 lines
3.5 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=65.0", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "kopi-docka"
|
|
version = "7.6.4"
|
|
description = "Robust cold backups for Docker environments using Kopia"
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
license = {text = "MIT"}
|
|
authors = [
|
|
{name = "Markus F. (TZERO78)"},
|
|
]
|
|
keywords = ["docker", "backup", "kopia", "containers", "disaster-recovery"]
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Intended Audience :: System Administrators",
|
|
"Topic :: System :: Archiving :: Backup",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Operating System :: POSIX :: Linux",
|
|
]
|
|
|
|
# Haupt-Dependencies (werden immer mit pip installiert)
|
|
dependencies = [
|
|
"psutil>=5.9.0",
|
|
"typer>=0.9.0",
|
|
"rich>=13.0.0",
|
|
"rich-click>=1.7.0",
|
|
"apprise>=1.6.0",
|
|
"pydantic>=2.0.0",
|
|
"pyzipper>=0.3.6",
|
|
]
|
|
|
|
# Optionale Dependencies
|
|
[project.optional-dependencies]
|
|
systemd = [
|
|
"systemd-python>=234",
|
|
]
|
|
dev = [
|
|
"pytest>=7.0.0",
|
|
"pytest-cov>=3.0.0",
|
|
"pytest-xdist>=3.0.0",
|
|
"pytest-randomly>=3.0.0",
|
|
"black>=22.0.0",
|
|
"flake8>=4.0.0",
|
|
"mypy>=1.8.0",
|
|
"vulture>=2.0.0",
|
|
"ruff>=0.1.0",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/TZERO78/kopi-docka"
|
|
Documentation = "https://github.com/TZERO78/kopi-docka#readme"
|
|
Repository = "https://github.com/TZERO78/kopi-docka"
|
|
Issues = "https://github.com/TZERO78/kopi-docka/issues"
|
|
|
|
[project.scripts]
|
|
kopi-docka = "kopi_docka.__main__:main"
|
|
|
|
[tool.setuptools]
|
|
packages = ["kopi_docka", "kopi_docka.helpers", "kopi_docka.cores", "kopi_docka.commands", "kopi_docka.commands.advanced", "kopi_docka.backends"]
|
|
|
|
[tool.setuptools.package-data]
|
|
kopi_docka = [
|
|
"templates/*.conf",
|
|
"templates/*.ini",
|
|
"templates/*.json",
|
|
"templates/systemd/*.template",
|
|
"templates/systemd/*.md",
|
|
"locales/*/LC_MESSAGES/*.mo",
|
|
"locales/*/LC_MESSAGES/*.po"
|
|
]
|
|
|
|
[tool.black]
|
|
line-length = 100
|
|
target-version = ['py310']
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
python_files = "test_*.py"
|
|
python_classes = "Test*"
|
|
python_functions = "test_*"
|
|
addopts = [
|
|
"-ra",
|
|
"--strict-markers",
|
|
"--tb=short",
|
|
"--maxfail=5",
|
|
"-v",
|
|
"-n", "auto",
|
|
"--dist=loadfile",
|
|
]
|
|
markers = [
|
|
"unit: Fast unit tests with mocks",
|
|
"integration: Slow integration tests with real interactions",
|
|
"requires_docker: Tests that need Docker daemon running",
|
|
"requires_root: Tests that need root/sudo access",
|
|
"slow: Tests that take more than 1 second",
|
|
]
|
|
filterwarnings = [
|
|
"ignore::DeprecationWarning",
|
|
"ignore::PendingDeprecationWarning",
|
|
"ignore::FutureWarning",
|
|
]
|
|
|
|
[tool.coverage.run]
|
|
source = ["kopi_docka"]
|
|
branch = true
|
|
omit = ["*/tests/*", "*/__pycache__/*"]
|
|
|
|
[tool.coverage.report]
|
|
# Current coverage: ~44%, target: 60% (increase gradually)
|
|
fail_under = 40
|
|
show_missing = true
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"if TYPE_CHECKING:",
|
|
"raise NotImplementedError",
|
|
]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.10"
|
|
warn_return_any = true
|
|
warn_unused_configs = true
|
|
disallow_untyped_defs = false # Start lenient, increase later
|
|
check_untyped_defs = true
|
|
no_implicit_optional = true
|
|
warn_redundant_casts = true
|
|
warn_unused_ignores = true
|
|
warn_no_return = true
|
|
warn_unreachable = true
|
|
strict_equality = true
|
|
show_error_codes = true
|
|
pretty = true
|
|
|
|
# Exclude patterns
|
|
exclude = [
|
|
"^venv/",
|
|
"^\\.venv/",
|
|
"^build/",
|
|
"^dist/",
|
|
]
|