[Lint] Replace black/flake8/isort with ruff
Use ruff as a single performant tool to lint and format Python code.
This commit is contained in:
parent
c88f750108
commit
90c5e75373
|
@ -6,11 +6,15 @@ exclude: >
|
||||||
deluge/tests/data/.*svg|
|
deluge/tests/data/.*svg|
|
||||||
)$
|
)$
|
||||||
repos:
|
repos:
|
||||||
- repo: https://github.com/psf/black
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
rev: 23.1.0
|
# Ruff version.
|
||||||
|
rev: v0.6.4
|
||||||
hooks:
|
hooks:
|
||||||
- id: black
|
- id: ruff
|
||||||
name: Fmt Black
|
name: Chk Ruff
|
||||||
|
args: [--fix]
|
||||||
|
- id: ruff-format
|
||||||
|
name: Fmt Ruff
|
||||||
- repo: https://github.com/pre-commit/mirrors-prettier
|
- repo: https://github.com/pre-commit/mirrors-prettier
|
||||||
rev: v2.7.1
|
rev: v2.7.1
|
||||||
hooks:
|
hooks:
|
||||||
|
@ -18,23 +22,9 @@ repos:
|
||||||
name: Fmt Prettier
|
name: Fmt Prettier
|
||||||
# Workaround to list modified files only.
|
# Workaround to list modified files only.
|
||||||
args: [--list-different]
|
args: [--list-different]
|
||||||
- repo: https://github.com/pycqa/isort
|
|
||||||
rev: 5.12.0
|
|
||||||
hooks:
|
|
||||||
- id: isort
|
|
||||||
name: Fmt isort
|
|
||||||
- repo: https://github.com/pycqa/flake8
|
|
||||||
rev: 6.0.0
|
|
||||||
hooks:
|
|
||||||
- id: flake8
|
|
||||||
name: Chk Flake8
|
|
||||||
additional_dependencies:
|
|
||||||
- pep8-naming==0.12.1
|
|
||||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
rev: v4.4.0
|
rev: v4.4.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: double-quote-string-fixer
|
|
||||||
name: Fix Double-quotes
|
|
||||||
- id: end-of-file-fixer
|
- id: end-of-file-fixer
|
||||||
name: Fix End-of-files
|
name: Fix End-of-files
|
||||||
exclude_types: [javascript, css]
|
exclude_types: [javascript, css]
|
||||||
|
@ -47,5 +37,5 @@ repos:
|
||||||
rev: v3.3.1
|
rev: v3.3.1
|
||||||
hooks:
|
hooks:
|
||||||
- id: pyupgrade
|
- id: pyupgrade
|
||||||
args: [--py36-plus]
|
args: [--py37-plus]
|
||||||
stages: [manual]
|
stages: [manual]
|
||||||
|
|
|
@ -64,6 +64,7 @@ class TestStatsPlugin:
|
||||||
|
|
||||||
Not strictly a unit test, but tests if calls do not fail...
|
Not strictly a unit test, but tests if calls do not fail...
|
||||||
"""
|
"""
|
||||||
|
# ruff: noqa: I001
|
||||||
from deluge_stats import graph, gtkui
|
from deluge_stats import graph, gtkui
|
||||||
|
|
||||||
from deluge.configmanager import ConfigManager
|
from deluge.configmanager import ConfigManager
|
||||||
|
|
|
@ -1,12 +1,6 @@
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["setuptools", "wheel"]
|
requires = ["setuptools", "wheel"]
|
||||||
|
|
||||||
[tool.black]
|
|
||||||
skip-string-normalization = true
|
|
||||||
|
|
||||||
[tool.isort]
|
|
||||||
profile = "black"
|
|
||||||
|
|
||||||
[tool.pytest.ini_options]
|
[tool.pytest.ini_options]
|
||||||
# Dump tracebacks if a test takes longer than X seconds
|
# Dump tracebacks if a test takes longer than X seconds
|
||||||
faulthandler_timeout = 60
|
faulthandler_timeout = 60
|
||||||
|
@ -27,3 +21,40 @@ filterwarnings = [
|
||||||
"ignore:Using readBody.*:DeprecationWarning",
|
"ignore:Using readBody.*:DeprecationWarning",
|
||||||
"ignore:resume_data is deprecated.*:DeprecationWarning:deluge.core.alertmanager",
|
"ignore:resume_data is deprecated.*:DeprecationWarning:deluge.core.alertmanager",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[tool.ruff]
|
||||||
|
line-length = 88
|
||||||
|
builtins = ["_", "_n", "__request__"]
|
||||||
|
extend-exclude = ["dist", "build"]
|
||||||
|
target-version = "py37"
|
||||||
|
|
||||||
|
[tool.ruff.format]
|
||||||
|
# Prefer single quotes over double quotes
|
||||||
|
quote-style = "single"
|
||||||
|
|
||||||
|
[tool.ruff.lint]
|
||||||
|
ignore = [
|
||||||
|
"N818", # error-suffix-on-exception-name
|
||||||
|
"E501", # Line-too-long, let formatter resolve it
|
||||||
|
|
||||||
|
]
|
||||||
|
select = [
|
||||||
|
"A", # flake8-builtins
|
||||||
|
"E", # pycodestyle
|
||||||
|
"F", # Pyflakes
|
||||||
|
"N", # pep8-naming
|
||||||
|
"W", # pycodestyle
|
||||||
|
"INT", # flake8-gettext
|
||||||
|
"I", # isort
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
[tool.ruff.lint.flake8-gettext]
|
||||||
|
extend-function-names = ["_n"]
|
||||||
|
|
||||||
|
[tool.ruff.lint.extend-per-file-ignores]
|
||||||
|
# E402 import not top of file (gi version check required before import)
|
||||||
|
"deluge/**/gtkui/*.py" = ["E402"]
|
||||||
|
"deluge/**/gtkui.py" = ["E402"]
|
||||||
|
"deluge/plugins/Stats/deluge_stats/graph.py" = ["E402"]
|
||||||
|
"deluge/ui/gtk3/*.py" = ["E402"]
|
||||||
|
|
20
setup.cfg
20
setup.cfg
|
@ -23,23 +23,3 @@ includes = glib, gio, cairo, pango, pangocairo, atk, gobject, gtk.keysyms,
|
||||||
zope.interface, mako.cache, email.mime, libtorrent, gtkosx_application,
|
zope.interface, mako.cache, email.mime, libtorrent, gtkosx_application,
|
||||||
HTMLParser
|
HTMLParser
|
||||||
frameworks = CoreFoundation, Foundation, AppKit
|
frameworks = CoreFoundation, Foundation, AppKit
|
||||||
|
|
||||||
[flake8]
|
|
||||||
max-line-length = 120
|
|
||||||
builtins = _,_n,__request__
|
|
||||||
extend-exclude = dist,build
|
|
||||||
extend-ignore =
|
|
||||||
# flake8-builtins: A003 class attribute is shadowing a python builtin
|
|
||||||
A003,
|
|
||||||
# E203 whitespace before ':'
|
|
||||||
E203,
|
|
||||||
# N818 pep8-naming: error suffix in exception names
|
|
||||||
N818
|
|
||||||
per-file-ignores =
|
|
||||||
# import not top of file (gi checks required before import)
|
|
||||||
deluge/ui/gtk3/*.py : E402
|
|
||||||
deluge/**/gtkui.py: E402
|
|
||||||
deluge/**/gtkui/*.py: E402
|
|
||||||
deluge/plugins/Stats/deluge_stats/graph.py: E402
|
|
||||||
[pycodestyle]
|
|
||||||
max-line-length = 88
|
|
||||||
|
|
13
tox.ini
13
tox.ini
|
@ -94,19 +94,6 @@ passenv = HOMEPATH,SSH_AUTH_SOCK
|
||||||
deps = {[baselint]deps}
|
deps = {[baselint]deps}
|
||||||
commands = pre-commit run --all-files
|
commands = pre-commit run --all-files
|
||||||
|
|
||||||
[testenv:flake8]
|
|
||||||
sitepackages = False
|
|
||||||
deps = {[baselint]deps}
|
|
||||||
commands =
|
|
||||||
flake8 --version
|
|
||||||
python -c 'import isort; print(isort.__version__)'
|
|
||||||
flake8 *.py deluge
|
|
||||||
|
|
||||||
[testenv:flake8-complexity]
|
|
||||||
sitepackages = False
|
|
||||||
deps = {[baselint]deps}
|
|
||||||
commands = flake8 --exit-zero --max-complexity 15 deluge
|
|
||||||
|
|
||||||
[testenv:pylint]
|
[testenv:pylint]
|
||||||
sitepackages = False
|
sitepackages = False
|
||||||
ignore_errors = True
|
ignore_errors = True
|
||||||
|
|
Loading…
Reference in New Issue