|
[tool.ruff.lint] |
|
extend-select = [ |
|
"B", # flake8-bugbear |
|
# "I", # isort |
|
# "ARG", # flake8-unused-arguments |
|
# "C4", # flake8-comprehensions |
|
# "ICN", # flake8-import-conventions |
|
# "ISC", # flake8-implicit-str-concat |
|
# "PGH", # pygrep-hooks |
|
# "PIE", # flake8-pie |
|
# "PL", # pylint |
|
# "PT", # flake8-pytest-style |
|
# "PTH", # flake8-use-pathlib |
|
# "RET", # flake8-return |
|
"RUF", # Ruff-specific |
|
# "SIM", # flake8-simplify |
|
# "T20", # flake8-print |
|
"UP", # pyupgrade |
|
"YTT", # flake8-2020 |
|
"TID252", # relative-imports |
|
"S101", # to identify use of assert statement |
|
"PT027", # remove unittest style assertion |
|
"PT009", # Use pytest.raises instead of unittest-style |
|
] |
|
ignore = [ |
|
"E741", # Ambiguous variable name |
|
"RUF012", # Mutable class attributes should be annotated with `typing.ClassVar` |
|
"SIM108", # Use ternary operator |
|
"ARG001", # Unused function argument: |
|
"ARG002", # Unused method arguments |
|
"PLR2004", # Magic value used in comparison |
|
"PLR0915", # Too many statements |
|
"PLR0913", # Too many arguments |
|
"PLR0912", # Too many branches |
|
"RET504", # Unnecessary assignment |
|
"RET505", # Unnecessary `else` |
|
"RET506", # Unnecessary `elif` |
|
"B018", # Found useless expression |
|
"RUF002", # Docstring contains ambiguous |
|
"UP007", # For pyupgrade |
|
] |
I think we never looked at the ruff rules after it was added to the codebase. Some of these are very useful and should be selected.
PyBaMM/pyproject.toml
Lines 172 to 212 in 10a404e
For someone looking at this issue: feel free to pick up a rule and discuss why it should be included/excluded in this thread before making a PR.