[metadata] name = borgbackup author = The Borg Collective (see AUTHORS file) description = Deduplicated, encrypted, authenticated and compressed backups url = https://borgbackup.org keywords = backup borgbackup classifiers = Development Status :: 3 - Alpha 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 Topic :: Security :: Cryptography Topic :: System :: Archiving :: Backup platforms = Linux, MacOS X, FreeBSD, OpenBSD, NetBSD license = BSD license_files = LICENSE project_urls = Bug Tracker = https://github.com/borgbackup/borg/issues Documentation = https://borgbackup.readthedocs.io Source Code = https://github.com/borgbackup/borg [options] packages = find: package_dir = =src python_requires = >=3.9 setup_requires = setuptools_scm[toml] >= 6.2 install_requires = msgpack >=1.0.3, <=1.0.4 packaging argon2-cffi tests_require = pytest zip_safe = False # See also the MANIFEST.in file. # We want to install all the files in the package directories... include_package_data = true # ...except the source files which have been compiled (C extensions): [options.exclude_package_data] * = *.c *.h *.pyx [options.packages.find] where = src [options.entry_points] console_scripts = borg = borg.archiver:main borgfs = borg.archiver:main [options.extras_require] llfuse = llfuse >= 1.3.8 pyfuse3 = pyfuse3 >= 3.1.1 nofuse = [tool:pytest] python_files = testsuite/*.py markers = allow_cache_wipe [flake8] # for reference ... # E121 continuation line under-indented for hanging indent # E122 continuation line missing indentation or outdented # E123 closing bracket does not match indentation of opening bracket's line # E125 continuation line with same indent as next logical line # E126 continuation line over-indented for hanging indent # E127 continuation line over-indented for visual indent # E128 continuation line under-indented for visual indent # E221 multiple spaces before operator # E226 missing whitespace around arithmetic operator # E261 at least two spaces before inline comment # E265 block comment should start with '# ' # E301 expected 1 blank line # E305 expected 2 blank lines after class or function definition # E401 multiple imports on one line # E402 module level import not at top # E501 line too long # E722 do not use bare except # E731 do not assign a lambda expression, use def # E741 ambiguous variable name # F401 import unused # F403 from ... import * used, unable to detect undefined names # F405 undefined or defined from star imports # F811 redef of unused var # F821 undefined name # W391 blank line at end of file # #### Pick either W503, or W504 - latest recommendation from pep8 is to ignore W503 # W503 line break before binary operator # W504 line break after binary operator # borg code style guidelines: # Ignoring E203 due to https://github.com/PyCQA/pycodestyle/issues/373 ignore = E226, W503, E203 # 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 # flake8 failures that appear with your change. per_file_ignores = docs/conf.py:E121,E126,E265,E305,E401,E402 src/borg/archive.py:E122,E125,E127,E402,E501,F401,F405,W504 src/borg/archiver/__init__.py:E402,E501,E722,E741,F405 src/borg/archiver/benchmarks.py:F405 src/borg/archiver/config.py:F405,E722 src/borg/archiver/common.py:E501,F405 src/borg/archiver/create.py:E501,F405 src/borg/archiver/debug.py:F405 src/borg/archiver/delete.py:F405 src/borg/archiver/diff.py:F405 src/borg/archiver/help.py:E501,F405 src/borg/archiver/keys.py:F405 src/borg/archiver/prune.py:F405 src/borg/archiver/recreate.py:F405 src/borg/archiver/rdelete.py:F405 src/borg/archiver/rlist.py:E501 src/borg/archiver/tar.py:F405 src/borg/cache.py:E127,E128,E402,E501,E722,W504 src/borg/fuse.py:E402,E501,E722,W504 src/borg/fuse_impl.py:F811 src/borg/locking.py:E128,E501,E722 src/borg/remote.py:E128,E501,F405 src/borg/repository.py:E126,E128,E501,F401,F405,W504 src/borg/shellpattern.py:E501 src/borg/upgrader.py:E501 src/borg/xattr.py:E402 src/borg/crypto/key.py:E125,E128,E402,E501,F401,F405,W504 src/borg/crypto/keymanager.py:E126,E128,E501,F401 src/borg/crypto/nonces.py:E128,E501 src/borg/helpers/__init__.py:F401,F405 src/borg/helpers/checks.py:F401 src/borg/helpers/errors.py:F405 src/borg/helpers/fs.py:F405 src/borg/helpers/manifest.py:E128,E402,E501,F405 src/borg/helpers/misc.py:E402,E722,F401,F405 src/borg/helpers/msgpack.py:E127,F405 src/borg/helpers/parseformat.py:E402,E501,E741,F401,F405 src/borg/helpers/process.py:E402,F401,W504 src/borg/helpers/progress.py:E402 src/borg/platform/__init__.py:F401,F811 src/borg/platform/base.py:E402 src/borg/testsuite/__init__.py:E501,F401 src/borg/testsuite/archive.py:E128,W504 src/borg/testsuite/archiver.py:E128,E501,E722,F401,F405,F811 src/borg/testsuite/benchmark.py:F401,F811 src/borg/testsuite/chunker.py:E501,F405 src/borg/testsuite/chunker_pytest.py:F401 src/borg/testsuite/chunker_slow.py:F405 src/borg/testsuite/crypto.py:E126,E501,E741 src/borg/testsuite/file_integrity.py:F401 src/borg/testsuite/hashindex.py:F401 src/borg/testsuite/helpers.py:E126,E127,E128,E501,F401 src/borg/testsuite/key.py:E501,F401 src/borg/testsuite/locking.py:E126,E128,E501,E722,F401 src/borg/testsuite/patterns.py:E123 src/borg/testsuite/platform.py:E128,E501,F401,F811 src/borg/testsuite/repository.py:E128,E501,F401 src/borg/testsuite/shellpattern.py:E123 src/borg/testsuite/upgrader.py:F405 max_line_length = 120 exclude = build,dist,.git,.idea,.cache,.tox