|
@@ -1,3 +1,76 @@
|
|
|
+[project]
|
|
|
+name = "borgbackup"
|
|
|
+dynamic = ["version"]
|
|
|
+authors = [{name="The Borg Collective (see AUTHORS file)"}]
|
|
|
+maintainers = [
|
|
|
+ {name="Thomas Waldmann", email="tw@waldmann-edv.de"},
|
|
|
+]
|
|
|
+description = "Deduplicated, encrypted, authenticated and compressed backups"
|
|
|
+readme = "README.rst"
|
|
|
+requires-python = ">=3.9"
|
|
|
+keywords = ["backup", "borgbackup"]
|
|
|
+classifiers = [
|
|
|
+ "Development Status :: 4 - Beta",
|
|
|
+ "Environment :: Console",
|
|
|
+ "Intended Audience :: System Administrators",
|
|
|
+ "License :: OSI Approved :: BSD License",
|
|
|
+ "Operating System :: POSIX :: BSD :: FreeBSD",
|
|
|
+ "Operating System :: POSIX :: BSD :: OpenBSD",
|
|
|
+ "Operating System :: POSIX :: BSD :: NetBSD",
|
|
|
+ "Operating System :: MacOS :: MacOS X",
|
|
|
+ "Operating System :: POSIX :: Linux",
|
|
|
+ "Programming Language :: Python",
|
|
|
+ "Programming Language :: Python :: 3",
|
|
|
+ "Programming Language :: Python :: 3.9",
|
|
|
+ "Programming Language :: Python :: 3.10",
|
|
|
+ "Programming Language :: Python :: 3.11",
|
|
|
+ "Programming Language :: Python :: 3.12",
|
|
|
+ "Topic :: Security :: Cryptography",
|
|
|
+ "Topic :: System :: Archiving :: Backup",
|
|
|
+]
|
|
|
+license = {text="BSD"}
|
|
|
+dependencies = [
|
|
|
+ # we are rather picky about msgpack versions, because a good working msgpack is
|
|
|
+ # very important for borg, see: https://github.com/borgbackup/borg/issues/3753
|
|
|
+ # Please note:
|
|
|
+ # using any other msgpack version is not supported by borg development and
|
|
|
+ # any feedback related to issues caused by this will be ignored.
|
|
|
+ "msgpack >=1.0.3, <=1.0.7",
|
|
|
+ "packaging",
|
|
|
+]
|
|
|
+
|
|
|
+# note for package maintainers: if you package borgbackup for distribution,
|
|
|
+# please (if available) add pyfuse3 (preferably) or llfuse as a *requirement*.
|
|
|
+# "borg mount" needs one of them to work.
|
|
|
+# if neither is available, do not require it, most of borgbackup will work.
|
|
|
+[project.optional-dependencies]
|
|
|
+llfuse = ["llfuse >= 1.3.8"]
|
|
|
+pyfuse3 = ["pyfuse3 >= 3.1.1"]
|
|
|
+nofuse = []
|
|
|
+
|
|
|
+[project.urls]
|
|
|
+"Homepage" = "https://borgbackup.org/"
|
|
|
+"Bug Tracker" = "https://github.com/borgbackup/borg/issues"
|
|
|
+"Documentation" = "https://borgbackup.readthedocs.io/"
|
|
|
+"Repository" = "https://github.com/borgbackup/borg"
|
|
|
+"Changelog" = "https://github.com/borgbackup/borg/blob/1.4-maint/docs/changes.rst"
|
|
|
+
|
|
|
+[project.scripts]
|
|
|
+borg = "borg.archiver:main"
|
|
|
+borgfs = "borg.archiver:main"
|
|
|
+
|
|
|
+[tool.setuptools]
|
|
|
+# See also the MANIFEST.in file.
|
|
|
+# We want to install all the files in the package directories...
|
|
|
+include-package-data = true
|
|
|
+
|
|
|
+[tool.setuptools.packages.find]
|
|
|
+where = ["src"]
|
|
|
+
|
|
|
+[tool.setuptools.exclude-package-data]
|
|
|
+# ...except the source files which have been compiled (C extensions):
|
|
|
+"*" = ["*.c", "*.h", "*.pyx"]
|
|
|
+
|
|
|
[build-system]
|
|
|
requires = ["setuptools>=64", "setuptools_scm>=8", "wheel", "pkgconfig", "Cython>=3"]
|
|
|
build-backend = "setuptools.build_meta"
|
|
@@ -8,3 +81,88 @@ build-backend = "setuptools.build_meta"
|
|
|
# https://github.com/borgbackup/borg/issues/6875
|
|
|
write_to = "src/borg/_version.py"
|
|
|
write_to_template = "__version__ = version = {version!r}\n"
|
|
|
+
|
|
|
+[tool.ruff]
|
|
|
+line-length = 120
|
|
|
+target-version = "py39"
|
|
|
+
|
|
|
+# Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default.
|
|
|
+select = ["E", "F"]
|
|
|
+
|
|
|
+# for reference ...
|
|
|
+# E402 module level import not at top
|
|
|
+# E501 line too long
|
|
|
+# F401 import unused
|
|
|
+# F405 undefined or defined from star imports
|
|
|
+# F811 redef of unused var
|
|
|
+
|
|
|
+# borg code style guidelines:
|
|
|
+# Ignoring E203 due to https://github.com/PyCQA/pycodestyle/issues/373
|
|
|
+ignore = ["E203", "F405", "E402"]
|
|
|
+
|
|
|
+# Allow autofix for all enabled rules (when `--fix`) is provided.
|
|
|
+fixable = ["A", "B", "C", "D", "E", "F", "G", "I", "N", "Q", "S", "T", "W", "ANN", "ARG", "BLE", "COM", "DJ", "DTZ", "EM", "ERA", "EXE", "FBT", "ICN", "INP", "ISC", "NPY", "PD", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "RET", "RSE", "RUF", "SIM", "SLF", "TCH", "TID", "TRY", "UP", "YTT"]
|
|
|
+unfixable = []
|
|
|
+
|
|
|
+# Exclude a variety of commonly ignored directories.
|
|
|
+exclude = [
|
|
|
+ ".cache",
|
|
|
+ ".eggs",
|
|
|
+ ".git",
|
|
|
+ ".git-rewrite",
|
|
|
+ ".idea",
|
|
|
+ ".mypy_cache",
|
|
|
+ ".ruff_cache",
|
|
|
+ ".tox",
|
|
|
+ "build",
|
|
|
+ "dist",
|
|
|
+]
|
|
|
+
|
|
|
+# Allow unused variables when underscore-prefixed.
|
|
|
+dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
|
+
|
|
|
+# Code style violation exceptions:
|
|
|
+# please note that the values are adjusted so that they do not cause failures
|
|
|
+# with existing code. if you want to change them, you should first fix all
|
|
|
+# ruff failures that appear with your change.
|
|
|
+[tool.ruff.per-file-ignores]
|
|
|
+"setup.py" = ["E501"]
|
|
|
+"setup_docs.py" = ["E501"]
|
|
|
+"src/borg/archive.py" = ["E501", "F401"]
|
|
|
+"src/borg/archiver.py" = ["E501", "F401", "E722", "E741"]
|
|
|
+"src/borg/cache.py" = ["E501", "E722"]
|
|
|
+"src/borg/crypto/key.py" = ["E501", "F401"]
|
|
|
+"src/borg/crypto/keymanager.py" = ["E501", "F401"]
|
|
|
+"src/borg/crypto/nonces.py" = ["E501"]
|
|
|
+"src/borg/fuse.py" = ["E501", "E722"]
|
|
|
+"src/borg/fuse_impl.py" = ["F811"]
|
|
|
+"src/borg/helpers/__init__.py" = ["F401"]
|
|
|
+"src/borg/helpers/checks.py" = ["F401"]
|
|
|
+"src/borg/helpers/manifest.py" = ["E501"]
|
|
|
+"src/borg/helpers/misc.py" = ["F401", "E722"]
|
|
|
+"src/borg/helpers/parseformat.py" = ["E501", "F401", "E741"]
|
|
|
+"src/borg/helpers/process.py" = ["F401"]
|
|
|
+"src/borg/locking.py" = ["E501", "E722"]
|
|
|
+"src/borg/platform/__init__.py" = ["F401", "F811"]
|
|
|
+"src/borg/remote.py" = ["E501"]
|
|
|
+"src/borg/repository.py" = ["E501", "F401"]
|
|
|
+"src/borg/shellpattern.py" = ["E501"]
|
|
|
+"src/borg/testsuite/__init__.py" = ["E501", "F401"]
|
|
|
+"src/borg/testsuite/archiver.py" = ["E501", "E722", "F401"]
|
|
|
+"src/borg/testsuite/benchmark.py" = ["F811", "F401"]
|
|
|
+"src/borg/testsuite/chunker.py" = ["E501"]
|
|
|
+"src/borg/testsuite/crypto.py" = ["E501", "E741"]
|
|
|
+"src/borg/testsuite/file_integrity.py" = ["F401"]
|
|
|
+"src/borg/testsuite/hashindex.py" = ["F401"]
|
|
|
+"src/borg/testsuite/helpers.py" = ["E501"]
|
|
|
+"src/borg/testsuite/key.py" = ["F401"]
|
|
|
+"src/borg/testsuite/locking.py" = ["E501", "E722", "F401"]
|
|
|
+"src/borg/testsuite/platform.py" = ["E501", "F811", "F401"]
|
|
|
+"src/borg/testsuite/repository.py" = ["E501", "F401"]
|
|
|
+"src/borg/upgrader.py" = ["E501"]
|
|
|
+
|
|
|
+[tool.pytest.ini_options]
|
|
|
+python_files = "testsuite/*.py"
|
|
|
+markers = [
|
|
|
+ "allow_cache_wipe",
|
|
|
+]
|