Open
Description
Context
The goal of this ticket is to implement linting on the code. We have noticed that certain rules applied to demcompare are not applied in the test files of xDEM.
Examples of errors present in the test files:
tests/test_volume.py:252:11: W0125: Using a conditional statement with a constant value (using-constant-test)
tests/test_spatialstats.py:563:12: W0612: Unused variable 'ny' (unused-variable)
tests/test_spatialstats.py:509:0: C0115: Missing class docstring (missing-class-docstring)
tests/test_spatialstats.py:547:4: R0914: Too many local variables (27/15) (too-many-locals)
tests/test_vcrs.py:22:8: C0206: Consider iterating with .items() (consider-using-dict-items)
We cannot guarantee that the same code quality is applied to all the code.
Ruff
We propose using the Ruff linter to reduce the number of tools used in xdem.
- Add the .ruff.toml file
# Exclude a variety of commonly ignored directories.
exclude = [
".bzr",
".direnv",
".eggs",
".git",
".git-rewrite",
".hg",
".ipynb_checkpoints",
".mypy_cache",
".nox",
".pants.d",
".pyenv",
".pytest_cache",
".pytype",
".ruff_cache",
".svn",
".tox",
".venv",
".vscode",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"node_modules",
"site-packages",
"venv",
]
# Same as Black.
line-length = 120
indent-width = 4
# Assume Python 3.8
target-version = "py38"
[lint]
# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default.
# Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or
# McCabe complexity (`C901`) by default.
select = ["ALL"]
ignore = []
# Allow fix for all enabled rules (when `--fix`) is provided.
fixable = ["ALL"]
unfixable = []
# Allow unused variables when underscore-prefixed.
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
[format]
# Like Black, use double quotes for strings.
quote-style = "double"
# Like Black, indent with spaces, rather than tabs.
indent-style = "space"
# Like Black, respect magic trailing commas.
skip-magic-trailing-comma = false
# Like Black, automatically detect the appropriate line ending.
line-ending = "auto"
# Enable auto-formatting of code examples in docstrings. Markdown,
# reStructuredText code/literal blocks and doctests are all supported.
#
# This is currently disabled by default, but it is planned for this
# to be opt-out in the future.
docstring-code-format = false
# Set the line length limit used when formatting code snippets in
# docstrings.
#
# This only has an effect when the `docstring-code-format` setting is
# enabled.
docstring-code-line-length = "dynamic"
- add ruff in makefile
lint: ruff check $(SRC_DIRS)
- add ruf in CI
name: Run
Ruff run: |
ruff check .
- add ruff in setup.cfg
Correction
- Ruff return lots of problem that needed to be fixed
Estimate
3d