setup.cfg 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. [metadata]
  2. name = borgbackup
  3. author = The Borg Collective (see AUTHORS file)
  4. description = Deduplicated, encrypted, authenticated and compressed backups
  5. url = https://borgbackup.org
  6. keywords =
  7. backup
  8. borgbackup
  9. classifiers =
  10. Development Status :: 4 - Beta
  11. Environment :: Console
  12. Intended Audience :: System Administrators
  13. License :: OSI Approved :: BSD License
  14. Operating System :: POSIX :: BSD :: FreeBSD
  15. Operating System :: POSIX :: BSD :: OpenBSD
  16. Operating System :: POSIX :: BSD :: NetBSD
  17. Operating System :: MacOS :: MacOS X
  18. Operating System :: POSIX :: Linux
  19. Programming Language :: Python
  20. Programming Language :: Python :: 3
  21. Programming Language :: Python :: 3.9
  22. Programming Language :: Python :: 3.10
  23. Programming Language :: Python :: 3.11
  24. Topic :: Security :: Cryptography
  25. Topic :: System :: Archiving :: Backup
  26. platforms = Linux, MacOS X, FreeBSD, OpenBSD, NetBSD
  27. license = BSD
  28. license_files = LICENSE
  29. project_urls =
  30. Bug Tracker = https://github.com/borgbackup/borg/issues
  31. Documentation = https://borgbackup.readthedocs.io
  32. Source Code = https://github.com/borgbackup/borg
  33. [options]
  34. packages = find_namespace:
  35. package_dir =
  36. =src
  37. python_requires = >=3.9
  38. setup_requires =
  39. setuptools_scm[toml] >= 6.2
  40. install_requires =
  41. msgpack >=1.0.3, <=1.0.5
  42. packaging
  43. platformdirs >=3.0.0, <4.0.0; sys_platform == 'darwin' # for macOS: breaking changes in 3.0.0,
  44. platformdirs >=2.6.0, <4.0.0; sys_platform != 'darwin' # for others: 2.6+ works consistently.
  45. argon2-cffi
  46. tests_require =
  47. pytest
  48. zip_safe = False
  49. # See also the MANIFEST.in file.
  50. # We want to install all the files in the package directories...
  51. include_package_data = true
  52. # ...except the source files which have been compiled (C extensions):
  53. [options.exclude_package_data]
  54. * =
  55. *.c
  56. *.h
  57. *.pyx
  58. [options.packages.find]
  59. where = src
  60. [options.entry_points]
  61. console_scripts =
  62. borg = borg.archiver:main
  63. borgfs = borg.archiver:main
  64. [options.extras_require]
  65. llfuse = llfuse >= 1.3.8
  66. pyfuse3 = pyfuse3 >= 3.1.1
  67. nofuse =
  68. [tool:pytest]
  69. python_files = testsuite/*.py
  70. markers =
  71. allow_cache_wipe
  72. [flake8]
  73. # for reference ...
  74. # E121 continuation line under-indented for hanging indent
  75. # E122 continuation line missing indentation or outdented
  76. # E123 closing bracket does not match indentation of opening bracket's line
  77. # E125 continuation line with same indent as next logical line
  78. # E126 continuation line over-indented for hanging indent
  79. # E127 continuation line over-indented for visual indent
  80. # E128 continuation line under-indented for visual indent
  81. # E221 multiple spaces before operator
  82. # E226 missing whitespace around arithmetic operator
  83. # E261 at least two spaces before inline comment
  84. # E265 block comment should start with '# '
  85. # E301 expected 1 blank line
  86. # E305 expected 2 blank lines after class or function definition
  87. # E401 multiple imports on one line
  88. # E402 module level import not at top
  89. # E501 line too long
  90. # E722 do not use bare except
  91. # E731 do not assign a lambda expression, use def
  92. # E741 ambiguous variable name
  93. # F401 import unused
  94. # F403 from ... import * used, unable to detect undefined names
  95. # F405 undefined or defined from star imports
  96. # F811 redef of unused var
  97. # F821 undefined name
  98. # W391 blank line at end of file
  99. # #### Pick either W503, or W504 - latest recommendation from pep8 is to ignore W503
  100. # W503 line break before binary operator
  101. # W504 line break after binary operator
  102. # borg code style guidelines:
  103. # Ignoring E203 due to https://github.com/PyCQA/pycodestyle/issues/373
  104. ignore = E226, W503, E203
  105. # Code style violation exceptions:
  106. # please note that the values are adjusted so that they do not cause failures
  107. # with existing code. if you want to change them, you should first fix all
  108. # flake8 failures that appear with your change.
  109. per_file_ignores =
  110. docs/conf.py:E121,E126,E265,E305,E401,E402
  111. src/borg/archive.py:E122,E125,E127,E402,E501,F401,F405,W504
  112. src/borg/archiver/__init__.py:E402,E501,E722,E741,F405
  113. src/borg/archiver/_common.py:E501,F405
  114. src/borg/archiver/benchmark_cmd.py:F405
  115. src/borg/archiver/config_cmd.py:F405,E722
  116. src/borg/archiver/create_cmd.py:E501,F405
  117. src/borg/archiver/debug_cmd.py:F405
  118. src/borg/archiver/delete_cmd.py:F405
  119. src/borg/archiver/diff_cmd.py:F405
  120. src/borg/archiver/help_cmd.py:E501,F405
  121. src/borg/archiver/key_cmds.py:F405
  122. src/borg/archiver/prune_cmd.py:F405
  123. src/borg/archiver/rcompress_cmd.py:F405
  124. src/borg/archiver/recreate_cmd.py:F405
  125. src/borg/archiver/rdelete_cmd.py:F405
  126. src/borg/archiver/rlist_cmd.py:E501
  127. src/borg/archiver/tar_cmds.py:F405
  128. src/borg/cache.py:E127,E128,E402,E501,E722,W504
  129. src/borg/fuse.py:E402,E501,E722,W504
  130. src/borg/fuse_impl.py:F811
  131. src/borg/locking.py:E128,E501,E722
  132. src/borg/manifest.py:E128,E402,E501,F405
  133. src/borg/remote.py:E128,E501,F405
  134. src/borg/repository.py:E126,E128,E501,F401,F405,W504
  135. src/borg/upgrader.py:E501
  136. src/borg/xattr.py:E402
  137. src/borg/crypto/key.py:E125,E128,E402,E501,F401,F405,W504
  138. src/borg/crypto/keymanager.py:E126,E128,E501,F401
  139. src/borg/crypto/nonces.py:E128,E501
  140. src/borg/helpers/__init__.py:F401,F405
  141. src/borg/helpers/checks.py:F401
  142. src/borg/helpers/errors.py:F405
  143. src/borg/helpers/fs.py:F405
  144. src/borg/helpers/misc.py:E402,E722,F401,F405
  145. src/borg/helpers/msgpack.py:E127,F405
  146. src/borg/helpers/parseformat.py:E402,E501,E741,F401,F405
  147. src/borg/helpers/process.py:E402,F401,W504
  148. src/borg/helpers/progress.py:E402
  149. src/borg/helpers/shellpattern.py:E501
  150. src/borg/platform/__init__.py:F401,F811
  151. src/borg/platform/base.py:E402
  152. src/borg/testsuite/__init__.py:E501,F401
  153. src/borg/testsuite/archive.py:E128,W504
  154. src/borg/testsuite/archiver/__init__.py:E128,E501,E722,F401,F405,F811
  155. src/borg/testsuite/archiver/debug_cmds.py:E501
  156. src/borg/testsuite/archiver/disk_full.py:F401,F405,F811
  157. src/borg/testsuite/archiver/extract_cmd.py:F405
  158. src/borg/testsuite/archiver/mount_cmds.py:E501,E722
  159. src/borg/testsuite/archiver/prune_cmd.py:F405
  160. src/borg/testsuite/archiver/rcompress_cmd.py:F405
  161. src/borg/testsuite/archiver/recreate_cmd.py:F405
  162. src/borg/testsuite/archiver/return_codes.py:F401,F405,F811
  163. src/borg/testsuite/benchmark.py:F401,F811
  164. src/borg/testsuite/chunker.py:E501,F405
  165. src/borg/testsuite/chunker_pytest.py:F401,F405
  166. src/borg/testsuite/chunker_slow.py:F405
  167. src/borg/testsuite/crypto.py:E126,E501,E741
  168. src/borg/testsuite/file_integrity.py:F401
  169. src/borg/testsuite/hashindex.py:F401
  170. src/borg/testsuite/helpers.py:E126,E127,E128,E501,F401
  171. src/borg/testsuite/key.py:E501,F401
  172. src/borg/testsuite/locking.py:E126,E128,E501,E722,F401
  173. src/borg/testsuite/patterns.py:E123
  174. src/borg/testsuite/platform.py:E128,E501,F401,F811
  175. src/borg/testsuite/repository.py:E128,E501,F401
  176. src/borg/testsuite/shellpattern.py:E123
  177. src/borg/testsuite/upgrader.py:F405
  178. max_line_length = 120
  179. exclude = build,dist,.git,.idea,.cache,.tox
  180. [mypy]
  181. python_version = 3.9
  182. strict_optional = False
  183. local_partial_types = True
  184. show_error_codes = True
  185. files = src/borg/**/*.py
  186. [mypy-msgpack.*]
  187. ignore_missing_imports = True
  188. [mypy-llfuse]
  189. ignore_missing_imports = True
  190. [mypy-pyfuse3]
  191. ignore_missing_imports = True
  192. [mypy-trio]
  193. ignore_missing_imports = True
  194. [mypy-borg.crypto.low_level]
  195. ignore_missing_imports = True
  196. [mypy-borg.platform.*]
  197. ignore_missing_imports = True