From 59a76eed9cbb7b7110fe4fb5da0205816e500191 Mon Sep 17 00:00:00 2001 From: Tiago Nobrega <tiago.nobrega@canonical.com> Date: Thu, 15 Jun 2023 09:46:46 -0300 Subject: [PATCH] lint: re-add pylint Since ruff is currently disabled (pending issue #146), temporarily add pylint so that we have at least some form of "stylistic" linting of the code. Once we add ruff we can undo this commit, remove .pylintrc and remove the many "# pylint:" comments on the code itself. --- .pylintrc | 4 ++-- craft_cli/messages.py | 4 ++-- pyproject.toml | 3 +++ tox.ini | 7 +++++-- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.pylintrc b/.pylintrc index ad4e341..abb4766 100644 --- a/.pylintrc +++ b/.pylintrc @@ -547,5 +547,5 @@ preferred-modules= # Exceptions that will emit a warning when being caught. Defaults to # "BaseException, Exception". -overgeneral-exceptions=BaseException, - Exception +overgeneral-exceptions=builtins.BaseException, + builtins.Exception diff --git a/craft_cli/messages.py b/craft_cli/messages.py index 1135962..fd1bd1f 100644 --- a/craft_cli/messages.py +++ b/craft_cli/messages.py @@ -360,9 +360,9 @@ def _active_guard(ignore_when_stopped: bool = False) -> Callable[..., Any]: """ def decorator(wrapped_func: FuncT) -> FuncT: - def func( + def func( # pylint: disable=inconsistent-return-statements self, *args: Any, **kwargs: Any - ) -> Any: # pylint: disable=inconsistent-return-statements + ) -> Any: if not self._initiated: # pylint: disable=protected-access raise RuntimeError("Emitter needs to be initiated first") if self._stopped: # pylint: disable=protected-access diff --git a/pyproject.toml b/pyproject.toml index 4c944e0..d0813d6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,6 +53,9 @@ dev = [ lint = [ "black==23.3.0", "codespell[toml]==2.2.4", + "pylint==2.17.4", + "pylint-fixme-info==1.0.3", + "pylint-pytest==1.1.2", "ruff==0.0.269", "yamllint==1.32.0" ] diff --git a/tox.ini b/tox.ini index b2eae2f..cd27b14 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] env_list = # Environments to run when called with no parameters. - lint-{black,ruff,pyright,shellcheck,codespell,docs} + lint-{black,ruff,pyright,shellcheck,codespell,docs,pylint} test-{py38,py310,py311} minversion = 4.5 # Tox will use these requirements to bootstrap a venv if necessary. @@ -56,7 +56,7 @@ runner = ignore_env_name_mismatch find = git ls-files filter = file --mime-type -Nnf- | grep shellscript | cut -f1 -d: -[testenv:lint-{black,ruff,shellcheck,codespell,yaml}] +[testenv:lint-{black,ruff,shellcheck,codespell,yaml,pylint}] description = Lint the source code base = testenv, lint labels = lint @@ -70,6 +70,9 @@ commands = shellcheck: xargs -ra {env_tmp_dir}/shellcheck_files shellcheck codespell: codespell --toml {tox_root}/pyproject.toml {posargs} yaml: yamllint {posargs} . + pylint: + pylint craft_cli {posargs} --ignore _version.py + pylint tests {posargs} --disable=missing-module-docstring,missing-function-docstring,redefined-outer-name,protected-access,duplicate-code,too-many-lines,missing-class-docstring,too-few-public-methods [testenv:lint-{mypy,pyright}] description = Static type checking