123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- [project]
- name = "borgmatic"
- version = "2.0.8.dev0"
- 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"
- [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"
|