diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index e91bfbf6..106f85f2 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -15,7 +15,7 @@ jobs: pip install -U \ defusedxml \ pygments \ - "pylint<3.3.0" \ + "pylint>=3.3.0" \ "pytest>=6.2.0" \ requests \ requests-cache \ diff --git a/setup.cfg b/setup.cfg index 7a08168b..8b9aa19b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -63,7 +63,7 @@ test = mypy Pygments>=2.4.0 pydocstyle - pylint<3.3.0 + pylint>=3.3.0 pytest>=6.2.0 pytest-kwparametrize>=0.0.3 requests_cache>=0.7 diff --git a/src/darkgraylib/argparse_helpers.py b/src/darkgraylib/argparse_helpers.py index 78069369..bf93dfc8 100644 --- a/src/darkgraylib/argparse_helpers.py +++ b/src/darkgraylib/argparse_helpers.py @@ -1,5 +1,7 @@ """Custom formatter and action for argparse.""" +# pylint: disable=too-many-arguments,too-many-positional-arguments + import logging import re import sys @@ -194,7 +196,7 @@ def generate_options_for_readme(parser: ArgumentParser) -> str: class LogLevelAction(Action): # pylint: disable=too-few-public-methods """Support for command line actions which increment/decrement the log level""" - def __init__( # pylint: disable=too-many-arguments + def __init__( self, option_strings: List[str], dest: str, diff --git a/src/darkgraylib/tests/test_command_line.py b/src/darkgraylib/tests/test_command_line.py index 99e1637e..8b334840 100644 --- a/src/darkgraylib/tests/test_command_line.py +++ b/src/darkgraylib/tests/test_command_line.py @@ -1,5 +1,8 @@ """Unit tests for `darkgraylib.command_line` and `darkgraylib.main`.""" +# pylint: disable=too-many-arguments,too-many-positional-arguments,too-many-locals +# pylint: disable=use-dict-literal + import os from pathlib import Path from unittest.mock import Mock, patch @@ -350,7 +353,7 @@ def test_parse_command_line( def test_parse_command_line_load_config_hook_called(tmp_path, monkeypatch): """The load configuration hook is called correctly.""" monkeypatch.chdir(tmp_path) - with Path("pyproject.toml").open("w") as pyproject: + with Path("pyproject.toml").open("w", encoding="utf-8") as pyproject: toml.dump({"tool": {"darkgraylib": {"revision": "main"}}}, pyproject) hook_mock = Mock() diff --git a/src/darkgraylib/tests/test_config.py b/src/darkgraylib/tests/test_config.py index 87f89c72..077f6008 100644 --- a/src/darkgraylib/tests/test_config.py +++ b/src/darkgraylib/tests/test_config.py @@ -1,5 +1,7 @@ """Tests for `darkgraylib.config`""" +# pylint: disable=too-many-arguments,use-dict-literal + import os import re from argparse import ArgumentParser, Namespace @@ -352,7 +354,7 @@ class OriginTrackingConfig(BaseConfig): confpath=None, expect={"config": "no_pyp"}, ) -def test_load_config_path( # pylint: disable=too-many-arguments +def test_load_config_path( # pylint: disable=too-many-positional-arguments tmp_path, monkeypatch, srcs, cwd, confpath, expect ): """``load_config()`` finds and loads configuration based on source file paths""" diff --git a/src/darkgraylib/tests/test_diff.py b/src/darkgraylib/tests/test_diff.py index 626b480b..35fe9583 100644 --- a/src/darkgraylib/tests/test_diff.py +++ b/src/darkgraylib/tests/test_diff.py @@ -1,5 +1,7 @@ """Unit tests for `darkgraylib.diff`""" +# pylint: disable=use-dict-literal + import pytest from darkgraylib.diff import diff_and_get_opcodes, map_unmodified_lines diff --git a/src/darkgraylib/tests/test_files.py b/src/darkgraylib/tests/test_files.py index 1b707bf3..e4ea8382 100644 --- a/src/darkgraylib/tests/test_files.py +++ b/src/darkgraylib/tests/test_files.py @@ -1,5 +1,7 @@ """Tests for the `darkgraylib.files` module.""" +# pylint: disable=redefined-outer-name + import os from contextlib import contextmanager from pathlib import Path diff --git a/src/darkgraylib/tests/test_git.py b/src/darkgraylib/tests/test_git.py index d4885637..7681cac9 100644 --- a/src/darkgraylib/tests/test_git.py +++ b/src/darkgraylib/tests/test_git.py @@ -3,6 +3,7 @@ # pylint: disable=no-member # context managers misfire Pylint's member-checking # pylint: disable=redefined-outer-name # fixtures misfire Pylint's redefinition checks # pylint: disable=use-dict-literal # dict() ok with kwparametrize +# pylint: disable=too-many-arguments,too-many-positional-arguments import os import re diff --git a/src/darkgraylib/tests/test_highlighting.py b/src/darkgraylib/tests/test_highlighting.py index b6c8c70c..31d59766 100644 --- a/src/darkgraylib/tests/test_highlighting.py +++ b/src/darkgraylib/tests/test_highlighting.py @@ -1,7 +1,7 @@ """Unit tests for :mod:`darkgraylib.highlighting`""" -# pylint: disable=too-many-arguments,redefined-outer-name,unused-argument -# pylint: disable=protected-access +# pylint: disable=protected-access,redefined-outer-name +# pylint: disable=too-many-arguments,too-many-positional-arguments,unused-argument import os import sys diff --git a/src/darkgraylib/tests/test_main.py b/src/darkgraylib/tests/test_main.py index d461f5ff..b756affa 100644 --- a/src/darkgraylib/tests/test_main.py +++ b/src/darkgraylib/tests/test_main.py @@ -1,5 +1,7 @@ """Unit tests for the `darkgraylib.main` module.""" +# pylint: disable=too-many-arguments,too-many-positional-arguments,use-dict-literal + import sys from pathlib import Path diff --git a/src/darkgraylib/tests/test_utils.py b/src/darkgraylib/tests/test_utils.py index 4119b505..be1b181e 100644 --- a/src/darkgraylib/tests/test_utils.py +++ b/src/darkgraylib/tests/test_utils.py @@ -1,5 +1,7 @@ """Unit tests for `darkgraylib.utils`.""" +# pylint: disable=redefined-outer-name,use-dict-literal + import os from pathlib import Path @@ -25,6 +27,7 @@ def textdocument_factory(request): which it creates a temporary file) and the ``TextDocument.from_bytes()`` classmethods. """ + # pylint: disable=comparison-with-callable if request.param == TextDocument.from_file: def factory(content): diff --git a/src/darkgraylib/utils.py b/src/darkgraylib/utils.py index 931f7911..a785155e 100644 --- a/src/darkgraylib/utils.py +++ b/src/darkgraylib/utils.py @@ -1,5 +1,7 @@ """Miscellaneous utility functions""" +# pylint: disable=too-many-arguments,too-many-positional-arguments + import io import sys import tokenize @@ -44,7 +46,7 @@ class TextDocument: DEFAULT_ENCODING = "utf-8" DEFAULT_NEWLINE = "\n" - def __init__( # pylint: disable=too-many-arguments + def __init__( self, string: str = None, lines: Iterable[str] = None,