replace flake8 by ruff

This commit is contained in:
Thomas Waldmann 2023-09-04 22:15:42 +02:00
parent d4f6f137c3
commit 915e58653b
No known key found for this signature in database
GPG Key ID: 243ACFA951F78E01
6 changed files with 93 additions and 108 deletions

View File

@ -31,19 +31,12 @@ on:
jobs:
lint:
runs-on: ubuntu-20.04
timeout-minutes: 10
runs-on: ubuntu-22.04
timeout-minutes: 2
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Lint with flake8
run: |
pip install flake8
flake8 src scripts conftest.py
- uses: chartboost/ruff-action@v1
pytest:

View File

@ -1,6 +1,5 @@
repos:
- repo: https://github.com/pycqa/flake8
rev: 6.0.0
hooks:
- id: flake8
files: '(src|scripts|conftest.py)'
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.0.287
hooks:
- id: ruff

View File

@ -12,8 +12,10 @@
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
import sys, os
sys.path.insert(0, os.path.abspath('../src'))
import sys
import os
sys.path.insert(0, os.path.abspath("../src"))
from borg import __version__ as sw_version

View File

@ -82,6 +82,85 @@ build-backend = "setuptools.build_meta"
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 = [

View File

@ -1,88 +0,0 @@
[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:
ignore = E226, W503
# 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.py:E125,E126,E127,E128,E501,E722,E731,E741,F401,F405,W504
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

View File

@ -25,10 +25,10 @@ passenv = *
passenv = * # needed by tox4, so env vars are visible for building borg
[testenv:flake8]
[testenv:ruff]
skip_sdist=true
skip_install=true
changedir =
deps =
flake8
commands = flake8 src scripts conftest.py
ruff
commands = ruff check .