File: pyproject.toml

package info (click to toggle)
borgmatic 2.0.11-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,752 kB
  • sloc: python: 58,506; sh: 150; makefile: 8; javascript: 5
file content (134 lines) | stat: -rw-r--r-- 4,479 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
[project]
name = "borgmatic"
version = "2.0.11"
authors = [
  { name="Dan Helfman", email="witten@torsion.org" },
]
description = "Simple, configuration-driven backup software for servers and workstations"
readme = "README.md"
requires-python = ">=3.9"
classifiers=[
    "Development Status :: 5 - Production/Stable",
    "Environment :: Console",
    "Intended Audience :: System Administrators",
    "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
    "Programming Language :: Python",
    "Topic :: Security :: Cryptography",
    "Topic :: System :: Archiving :: Backup",
]
dependencies = [
    "jsonschema",
    "packaging",
    "requests",
    "ruamel.yaml>0.15.0",
]

[project.scripts]
borgmatic = "borgmatic.commands.borgmatic:main"
generate-borgmatic-config = "borgmatic.commands.generate_config:main"
validate-borgmatic-config = "borgmatic.commands.validate_config:main"

[project.optional-dependencies]
Apprise = ["apprise"]

[project.urls]
Homepage = "https://torsion.org/borgmatic"

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[tool.setuptools.packages.find]
include = ["borgmatic*"]
namespaces = false

[tool.pytest.ini_options]
testpaths = "tests"
addopts = "--cov-report term-missing:skip-covered --cov=borgmatic --no-cov-on-fail --cov-fail-under=100 --ignore=tests/end-to-end --ignore=tests/integration/commands/test_borgmatic.py"

[tool.ruff]
line-length = 100
exclude = ["*.*/*"]

[tool.ruff.format]
quote-style = "preserve"

[tool.ruff.lint]
preview = true
extend-select = [
    "A",  # flake8-builtins: builtin shadowing
    "B",  # flake8-bugbear: bugs and design problems
    "BLE",  # flak8-blind-except: "except:" without exception type
    "C4",  # flake8-comprehensions: generators and comprehensions
    "COM",  # flake8-commas: trailing commas
    "DTZ",  # flake8-datetimez: naive datetime
    "E",  # pycodestyle: errors
    "F",  # pyflakes: various linting
    "ERA",  # eradicate: find commented out code
    "FLY",  # flynt: f-string instead of string join
    "FIX",  # flake8-fixme: leftover FIXMEs and TODOs
    "I",  # isort: import ordering
    "ISC",  # flake8-implicit-str-concat: implicit string concatenation
    "LOG",  # flake8-logging: standard library logging
    "N",  # pep8-naming: PEP-8 naming conventions
    "PERF",  # perflint: performance linting
    "PIE",  # flake8-pie: various linting
    "PL",  # pylint: various linting
    "Q",  # flake8-quotes: string quoting
    "RET",  # flake-return: return statement
    "RUF",  # Ruff-specific rules
    "S",  # flake8-bandit: security testing
    "SIM",  # flake-simplify: code simplifications
    "T20",  # flake8-print: print statements
    "TID",  # flake8-tidy-imports: absolute imports
    "UP",  # pyupgrade: upgrade syntax for newer versions of Python
    "W",  # pycodestyle: warnings
    "YTT",  # flake8-202: sys.version misuse
]
ignore = [
    "C408",  # unnecessary dict() call (conflicts with makeLogRecord())
    "COM812",  # trailing comma missing (conflicts with formatter)
    "B904",  # unchained exception raised within "except:" clause
    "E501",  # line too long
    "ISC001",  # implicit string concatenation on one line (conflicts with formatter)
    "N801",  # class name not title case
    "N818",  # exception class name doesn't end in "Error"
    "PLR0913",  # too many positional arguments in function definition
    "PLR0914",  # too many local variables
    "PLR0917",  # too many positional arguments
    "S105",  # hard-coded password
    "S404",  # subprocess import
    "SIM115",  # open() without context manager
    "SIM905",  # split() on literal string
]

[tool.ruff.lint.flake8-quotes]
docstring-quotes = "single"
inline-quotes = "single"
multiline-quotes = "single"

[tool.ruff.lint.isort]
known-first-party = ["borgmatic"]

[tool.ruff.lint.per-file-ignores]
"tests/**/*.py" = [
    "C406",  # unnecessary list literal
    "N802",  # uppercase in function name
    "PLC1901",  # comparison to empty string
    "PLR2004",  # magic value
    "PLW1514",  # open() without encoding
    "S101",  # asserts
    "S106",  # hard-coded password
    "S108",  # insecure usage of temporary file
    "S602",  # shell=True
    "S603",  # subprocess call
    "S604",  # shell=True
    "S607",  # executing a relative path
    "TID252",  # relative import from parent
]
"tests/end-to-end/commands/**/*.py" = [
    "T201",  # print statement
]

[tool.codespell]
skip = ".git,.tox,build"