commit 68125fbbf2c584e72e36120f07a67cd00ae6e63aec33c4ab59eca5ad446dd552 Author: Daniel Garcia Date: Thu Jun 12 12:41:56 2025 +0000 Fix .changes file, osc service runall source_validator OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=173 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/pylint-3.2.5-gh.tar.gz b/pylint-3.2.5-gh.tar.gz new file mode 100644 index 0000000..3758952 --- /dev/null +++ b/pylint-3.2.5-gh.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7860e1f334c338e8400567df893ebe0934c162737f9bc22eb6f0a9c530a52cfc +size 1446535 diff --git a/pylint-3.2.6-gh.tar.gz b/pylint-3.2.6-gh.tar.gz new file mode 100644 index 0000000..6058e23 --- /dev/null +++ b/pylint-3.2.6-gh.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66c917c27c74b84d44aecacd9725defeb3ef51bdf916213e52c647f5545dda75 +size 1447684 diff --git a/pylint-3.3.1-gh.tar.gz b/pylint-3.3.1-gh.tar.gz new file mode 100644 index 0000000..3aa13f5 --- /dev/null +++ b/pylint-3.3.1-gh.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3343069bd6f6fcf220cfac79db466f69a509213ed1f0bedc9887600eb0b58084 +size 1453572 diff --git a/pylint-3.3.6-gh.tar.gz b/pylint-3.3.6-gh.tar.gz new file mode 100644 index 0000000..5bba6f6 --- /dev/null +++ b/pylint-3.3.6-gh.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5a0f3da7beb89ef03fa4353e52fbf742daf2dea3dc57ef401957c2201dfeea5 +size 1456483 diff --git a/pylint-3.3.7-gh.tar.gz b/pylint-3.3.7-gh.tar.gz new file mode 100644 index 0000000..525dc00 --- /dev/null +++ b/pylint-3.3.7-gh.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a10501d89b9257720844481b21a16137f7880af793971bdf871f78712f75b5ee +size 1457480 diff --git a/pytest-8.patch b/pytest-8.patch new file mode 100644 index 0000000..97463a1 --- /dev/null +++ b/pytest-8.patch @@ -0,0 +1,206 @@ +Index: pylint-3.2.6/pylint/testutils/configuration_test.py +=================================================================== +--- pylint-3.2.6.orig/pylint/testutils/configuration_test.py ++++ pylint-3.2.6/pylint/testutils/configuration_test.py +@@ -12,7 +12,6 @@ import logging + import unittest + from pathlib import Path + from typing import Any, Dict +-from unittest.mock import Mock + + from pylint.lint import Run + +@@ -135,18 +134,15 @@ def get_expected_output( + + def run_using_a_configuration_file( + configuration_path: Path | str, file_to_lint: str = __file__ +-) -> tuple[Mock, Mock, Run]: ++) -> Run: + """Simulate a run with a configuration without really launching the checks.""" + configuration_path = str(configuration_path) + args = ["--rcfile", configuration_path, file_to_lint] +- # We do not capture the `SystemExit` as then the `runner` variable +- # would not be accessible outside the `with` block. +- with unittest.mock.patch("sys.exit") as mocked_exit: +- # Do not actually run checks, that could be slow. We don't mock +- # `PyLinter.check`: it calls `PyLinter.initialize` which is +- # needed to properly set up messages inclusion/exclusion +- # in `_msg_states`, used by `is_message_enabled`. +- check = "pylint.lint.pylinter.check_parallel" +- with unittest.mock.patch(check) as mocked_check_parallel: +- runner = Run(args) +- return mocked_exit, mocked_check_parallel, runner ++ # Do not actually run checks, that could be slow. We don't mock ++ # `PyLinter.check`: it calls `PyLinter.initialize` which is ++ # needed to properly set up messages inclusion/exclusion ++ # in `_msg_states`, used by `is_message_enabled`. ++ check = "pylint.lint.pylinter.check_parallel" ++ with unittest.mock.patch(check): ++ runner = Run(args, exit=False) ++ return runner +Index: pylint-3.2.6/requirements_test_min.txt +=================================================================== +--- pylint-3.2.6.orig/requirements_test_min.txt ++++ pylint-3.2.6/requirements_test_min.txt +@@ -3,7 +3,7 @@ + astroid==3.2.4 # Pinned to a specific version for tests + typing-extensions~=4.11 + py~=1.11.0 +-pytest~=7.4 ++pytest~=8.2 + pytest-benchmark~=4.0 + pytest-timeout~=2.3 + towncrier~=23.11 +Index: pylint-3.2.6/tests/config/test_config.py +=================================================================== +--- pylint-3.2.6.orig/tests/config/test_config.py ++++ pylint-3.2.6/tests/config/test_config.py +@@ -55,10 +55,8 @@ reports = "yes" + ) + env_var = "tmp_path_env" + os.environ[env_var] = str(config_file) +- mock_exit, _, runner = run_using_a_configuration_file( +- f"${env_var}", file_to_lint_path +- ) +- mock_exit.assert_called_once_with(0) ++ runner = run_using_a_configuration_file(f"${env_var}", file_to_lint_path) ++ assert runner.linter.msg_status == 0 + check_configuration_file_reader(runner) + + +@@ -226,7 +224,7 @@ def test_disable_before_enable_all_takes + runner = Run(["--disable=fixme", "--enable=all", str(FIXME_MODULE)], exit=False) + assert not runner.linter.stats.by_msg + +- _, _, toml_runner = run_using_a_configuration_file( ++ toml_runner = run_using_a_configuration_file( + HERE + / "functional" + / "toml" +@@ -239,7 +237,7 @@ def test_enable_before_disable_all_takes + runner = Run(["--enable=fixme", "--disable=all", str(FIXME_MODULE)], exit=False) + assert runner.linter.stats.by_msg + +- _, _, toml_runner = run_using_a_configuration_file( ++ toml_runner = run_using_a_configuration_file( + HERE + / "functional" + / "toml" +Index: pylint-3.2.6/tests/config/test_functional_config_loading.py +=================================================================== +--- pylint-3.2.6.orig/tests/config/test_functional_config_loading.py ++++ pylint-3.2.6/tests/config/test_functional_config_loading.py +@@ -57,10 +57,8 @@ def default_configuration( + ) -> PylintConfiguration: + empty_pylintrc = tmp_path / "pylintrc" + empty_pylintrc.write_text("") +- mock_exit, _, runner = run_using_a_configuration_file( +- str(empty_pylintrc), file_to_lint_path +- ) +- mock_exit.assert_called_once_with(0) ++ runner = run_using_a_configuration_file(str(empty_pylintrc), file_to_lint_path) ++ assert runner.linter.msg_status == 0 + return runner.linter.config.__dict__ + + +@@ -88,10 +86,8 @@ def test_functional_config_loading( + warnings.filterwarnings( + "ignore", message="The use of 'MASTER'.*", category=UserWarning + ) +- mock_exit, _, runner = run_using_a_configuration_file( +- configuration_path, file_to_lint_path +- ) +- mock_exit.assert_called_once_with(expected_code) ++ runner = run_using_a_configuration_file(configuration_path, file_to_lint_path) ++ assert runner.linter.msg_status == expected_code + out, err = capsys.readouterr() + # 'rstrip()' applied, so we can have a final newline in the expected test file + assert expected_output.rstrip() == out.rstrip(), msg +Index: pylint-3.2.6/tests/lint/unittest_lint.py +=================================================================== +--- pylint-3.2.6.orig/tests/lint/unittest_lint.py ++++ pylint-3.2.6/tests/lint/unittest_lint.py +@@ -20,6 +20,7 @@ from pathlib import Path + from shutil import copy, rmtree + from unittest import mock + ++import astroid + import platformdirs + import pytest + from astroid import nodes +@@ -1053,7 +1054,9 @@ def test_finds_pyi_file() -> None: + exit=False, + ) + assert run.linter.current_file is not None +- assert run.linter.current_file.endswith("foo.pyi") ++ assert run.linter.current_file.endswith( ++ "a_module_that_we_definitely_dont_use_in_the_functional_tests.pyi" ++ ) + + + def test_recursive_finds_pyi_file() -> None: +@@ -1068,7 +1071,9 @@ def test_recursive_finds_pyi_file() -> N + exit=False, + ) + assert run.linter.current_file is not None +- assert run.linter.current_file.endswith("foo.pyi") ++ assert run.linter.current_file.endswith( ++ "a_module_that_we_definitely_dont_use_in_the_functional_tests.pyi" ++ ) + + + def test_no_false_positive_from_pyi_stub() -> None: +@@ -1126,6 +1131,9 @@ def test_recursive_ignore(ignore_paramet + ): + module = os.path.abspath(join(REGRTEST_DATA_DIR, *regrtest_data_module)) + assert module in linted_file_paths ++ # We lint the modules in `regrtest` in other tests as well. Prevent test pollution by ++ # explicitly clearing the astroid caches. ++ astroid.MANAGER.clear_cache() + + + def test_source_roots_globbing() -> None: +Index: pylint-3.2.6/tests/regrtest_data/pyi/a_module_that_we_definitely_dont_use_in_the_functional_tests.pyi +=================================================================== +--- /dev/null ++++ pylint-3.2.6/tests/regrtest_data/pyi/a_module_that_we_definitely_dont_use_in_the_functional_tests.pyi +@@ -0,0 +1,5 @@ ++# This module is named in a particular way to prevent test pollution. It was previously named 'foo' and ++# all mentions of 'foo' were wrongly resolved to this stub file. ++foo = 1 ++ ++def three_item_iterable(): ... +Index: pylint-3.2.6/tests/regrtest_data/pyi/foo.pyi +=================================================================== +--- pylint-3.2.6.orig/tests/regrtest_data/pyi/foo.pyi ++++ /dev/null +@@ -1,4 +0,0 @@ +-foo = 1 +- +-def three_item_iterable(): +- ... +Index: pylint-3.2.6/tests/regrtest_data/uses_module_with_stub.py +=================================================================== +--- pylint-3.2.6.orig/tests/regrtest_data/uses_module_with_stub.py ++++ pylint-3.2.6/tests/regrtest_data/uses_module_with_stub.py +@@ -1,5 +1,5 @@ + """If the stub is preferred over the .py, this might emit not-an-iterable""" +-from pyi.foo import three_item_iterable ++from pyi.a_module_that_we_definitely_dont_use_in_the_functional_tests import three_item_iterable + + for val in three_item_iterable(): + print(val) +Index: pylint-3.2.6/tests/regrtest_data/pyi/a_module_that_we_definitely_dont_use_in_the_functional_tests.py +=================================================================== +--- /dev/null ++++ pylint-3.2.6/tests/regrtest_data/pyi/a_module_that_we_definitely_dont_use_in_the_functional_tests.py +@@ -0,0 +1,2 @@ ++def three_item_iterable(): ++ return [1, 2, 3] +Index: pylint-3.2.6/tests/regrtest_data/pyi/foo.py +=================================================================== +--- pylint-3.2.6.orig/tests/regrtest_data/pyi/foo.py ++++ /dev/null +@@ -1,2 +0,0 @@ +-def three_item_iterable(): +- return [1, 2, 3] diff --git a/python-pylint.changes b/python-pylint.changes new file mode 100644 index 0000000..e83094a --- /dev/null +++ b/python-pylint.changes @@ -0,0 +1,2769 @@ +------------------------------------------------------------------- +Thu May 15 08:56:07 UTC 2025 - John Paul Adrian Glaubitz + +- Update to 3.3.7 + * Comparisons between two calls to `type()` won't raise an + ``unidiomatic-typecheck`` warning anymore, consistent with + the behavior applied only for ``==`` previously. + * Fixed a crash when importing a class decorator that did not + exist with the same name as a class attribute after the class + definition. + * Fix a crash caused by malformed format strings when using + `.format` with keyword arguments. + * Using a slice as a class decorator now raises a ``not-callable`` + message instead of crashing. A lot of checks that dealt with + decorators (too many to list) are now shortcut if the decorator + can't immediately be inferred to a function or class definition. + * The algorithm used for ``no-member`` suggestions is now more + efficient and cuts the calculation when the distance score is + already above the threshold. + +------------------------------------------------------------------- +Tue Apr 8 03:29:21 UTC 2025 - Steve Kowalik + +- Update to 3.3.6: + * Fix a false positive for used-before-assignment when an inner function's + return type * annotation is a class defined at module scope. + * Fix false positives for use-implicit-booleaness-not-comparison, + use-implicit-booleaness-not-comparison-to-string and + use-implicit-booleaness-not-comparison-to-zero when chained comparisons + are checked. + * Fix a false positive for invalid-getnewargs-ex-returned when the tuple or + dict has been assigned to a name. + * Remove getopt and optparse from the list of deprecated modules. + * Fixed conditional import x.y causing false positive + possibly-used-before-assignment. + * Fix a crash when something besides a class is found in an except handler. + * Fixed raising invalid-name when using camelCase for private methods with + two leading underscores. + * Fixes "skipped files" count calculation; the previous method was + displaying an arbitrary number. + * Fixes a crash that occurred when pylint was run in a container on a host + with cgroupsv2 and restrictions on CPU usage. + * Relaxed the requirements for isort so pylint can benefit from isort 6. + * Fix false positives for undefined-variable for classes using Python 3.12 + generic type syntax. + * Fix a false positive for use-implicit-booleaness-not-len. No lint should + be emitted for generators (len is not defined for generators). + * Fix Unable to import 'collections.abc' (import-error) on Python 3.13.1. + * Fix a false positive for potential-index-error when an indexed iterable + contains a starred element that evaluates to more than one item. + * Fixes the issue with --source-root option not working when the source + files are in a subdirectory of the source root (e.g. when using a /src + layout). +------------------------------------------------------------------- +Thu Sep 26 09:24:16 UTC 2024 - Ben Greiner + +- Revert restriction to python3. + +------------------------------------------------------------------- +Wed Sep 25 11:52:49 UTC 2024 - ecsos + +- Fix build error under Leap. + +------------------------------------------------------------------- +Tue Sep 24 13:46:18 UTC 2024 - Dirk Müller + +- update to 3.3.1: + * Fix regression causing some f-strings to not be inferred as + strings. +- update to 3.3.0: + * We migrated ``symilar`` to argparse, from getopt, so the + error and help output changed (for the better). + We exit with 2 instead of sometime 1, sometime 2. + The error output is not captured by the runner anymore. + It's not possible to use a value for the boolean options + anymore (``--ignore-comments 1`` should become + ``--ignore-comments``). + * Add new `declare-non-slot` error which reports when a class + has a `__slots__` member and a type hint on the class is not + present in `__slots__`. + * Added `too-many-positional-arguments` to allow distinguishing + the configuration for too many total arguments + (with keyword-only params specified after `*`) from the + configuration for too many positional-or-keyword or + positional-only arguments. + * Add `using-exception-group-in-unsupported-version` and + `using-generic-type-syntax-in-unsupported-version` for uses + of Python 3.11+ or 3.12+ features on lower supported versions + provided with `--py-version`. + * Add `using-assignment-expression-in-unsupported-version` for + uses of `:=` (walrus operator) on Python versions below 3.8 + provided with `--py-version`. + * Add `using-positional-only-args-in-unsupported-version` for + uses of positional-only args on Python versions below 3.8 + provided with `--py-version`. + * Add ``unnecessary-default-type-args`` to the ``typing`` + extension to detect the use of unnecessary default type args + for ``typing.Generator`` and ``typing.AsyncGenerator``. + * Fix computation of never-returning function: `Never` is + handled in addition to `NoReturn`, and priority is given to + the explicit `--never-returning-functions` option. + * Fix a false negative for `await-outside-async` when await is + inside Lambda. + * Fix a false negative for ``duplicate-argument-name`` by + including ``positional-only``, ``*args`` and ``**kwargs`` + arguments in the check. + * Fix false negative for `multiple-statements` when multiple + statements are present on `else` and `finally` lines of + `try`. + * Fix false negatives when `isinstance` does not have exactly + two arguments. + * pylint now emits a `too-many-function-args` or `no-value-for- + parameter` appropriately for `isinstance` calls. + * `--enable` with `--disable=all` now produces an error, when + an unknown msg code is used. Internal `pylint` messages are + no longer affected by `--disable=all`. + * Impossible to compile regexes for paths in the configuration + or argument given to pylint won't crash anymore but raise an + argparse error and display the error message from + ``re.compile`` instead. + * Fix a bug where a ``tox.ini`` file with pylint configuration + was ignored and it exists in the current directory. + * ``.cfg`` and ``.ini`` files containing a ``Pylint`` + configuration may now use a section named ``[pylint]``. This + enhancement impacts the scenario where these file types are + used as defaults when they are present and have not been + explicitly referred to, using the ``--rcfile`` option. + * Improve file discovery for directories that are not python + packages. + * Remove support for launching pylint with Python 3.8. + * Code that supports Python 3.8 can still be linted with the + ``--py-version=3.8`` setting. + * Add support for Python 3.13. + * All variables, classes, functions and file names containing + the word 'similar', when it was, in fact, referring to + 'symilar' (the standalone program for the duplicate-code + check) were renamed to 'symilar'. + * Remove old-style classes (Python 2) code and remove check for + new-style class since everything is new-style in Python 3. + Updated doc for exception checker to remove reference to new + style class. +- update to 3.2.7: + * Fixed a false positive `unreachable` for `NoReturn` coroutine + functions. + * Fix crash in refactoring checker when calling a lambda bound + as a method. + * Fix a crash in ``undefined-loop-variable`` when providing the + ``iterable`` argument to ``enumerate()``. + * Fix to address indeterminacy of error message in case a + module name is same as another in a separate namespace. +- drop support-astroid-3.3.patch pytest-8.patch: upstream + +------------------------------------------------------------------- +Mon Aug 12 06:12:36 UTC 2024 - Steve Kowalik + +- Update to 3.2.6: + * Quiet false positives for unexpected-keyword-arg when pylint cannot + determine which of two or more dynamically defined classes is being + instantiated. + * Fix a false positive for missing-param-doc where a method which is + decorated with typing.overload was expected to have a docstring + specifying its parameters. + * Fix a regression that raised invalid-name on class attributes merely + overriding invalid names from an ancestor. + * Treat assert_never() the same way when imported from typing_extensions. + * Fix a false positive for consider-using-min-max-builtin when the + assignment target is an attribute. + * Fix an AssertionError arising from properties that return partial + functions. + * Fix a crash when a subclass extends __slots__. +- Refresh pytest-8.patch. +- Add patch support-astroid-3.3.patch: + * Support astroid >= 3.3.0. + +------------------------------------------------------------------- +Tue Jul 9 11:59:18 UTC 2024 - Daniel Garcia + +- Add new patch to fix failing tests with pytest 8, pytest-8.patch + gh#pylint-dev/pylint#9576 +- Skip some tests that still are failing with pytest 8, + gh#pylint-dev/pylint#9545 + +------------------------------------------------------------------- +Sun Jun 30 22:05:58 UTC 2024 - Dirk Müller + +- update to 3.2.5: + * Fixed a false positive ``unreachable-code`` when using + ``typing.Any`` as return type in python 3.8, the + ``typing.NoReturn`` are not taken into account + anymore for python 3.8 however. + * Prevent emitting ``possibly-used-before-assignment`` when + relying on names only potentially not defined in conditional + blocks guarded by functions annotated with ``typing.Never`` + or ``typing.NoReturn``. +- update to 3.2.3: + * Classes with only an Ellipsis (``...``) in their body do not + trigger 'multiple-statements' anymore if they are inlined + * Fix a false positive for ``redefined-outer-name`` when there + is a name defined in an exception-handling block which shares + the same name as a local variable that has been defined in a + function body. + * Fix a false positive for ``use-yield-from`` when using the + return value from the ``yield`` atom. +- update to 3.2.2: + * Fix multiple false positives for generic class syntax added + in Python 3.12 (PEP 695). + * Exclude context manager without cleanup from + ``contextmanager-generator-missing-cleanup`` checks. +- update to 3.2.1: + * Exclude if/else branches containing terminating functions + (e.g. `sys.exit()`) from `possibly-used-before-assignment` + checks. + * Don't emit ``typevar-name-incorrect-variance`` warnings for + PEP 695 style TypeVars. + * The variance is inferred automatically by the type checker. + * Adding ``_co`` or ``_contra`` suffix can help to reason about + TypeVar. +- update to 3.2.0: + * Understand `six.PY2` and `six.PY3` for conditional imports. + * Github can use to automatically annotate code. Use it with + `pylint --output-format=github` on your Github Workflows. + * Add check ``possibly-used-before-assignment`` when relying on + names after an ``if/else`` switch when one branch failed to + define the name, raise, or return. + * Checks for generators that use contextmanagers that don't + handle cleanup properly. + * Is meant to raise visibilty on the case that a generator is + not fully exhausted and the contextmanager is not cleaned up + properly. + * A contextmanager must yield a non-constant value and not + handle cleanup for GeneratorExit. + * The using generator must attempt to use the yielded context + value `with x() as y` and not just `with x()`. + +------------------------------------------------------------------- +Fri Mar 22 20:01:42 UTC 2024 - Dirk Müller + +- update to 3.1.0: + * Two new checks--``use-yield-from``, ``deprecated- + attribute``-- and a smattering of bug fixes. + * Skip ``consider-using-join`` check for non-empty separators + if an ``suggest-join-with-non-empty-separator`` option is set + to ``no``. + * Discover ``.pyi`` files when linting. + * Check ``TypeAlias`` and ``TypeVar`` (PEP 695) nodes for + ``invalid-name``. + * Support for resolving external toml files named pylintrc.toml + and .pylintrc.toml. + * Check for `.clear`, `.discard`, `.pop` and `remove` methods + being called on a set while it is being iterated over. + * New message `use-yield-from` added to the refactoring + checker. This message is emitted when yielding from a loop + can be replaced by `yield from`. + * Added a ``deprecated-attribute`` message to check deprecated + attributes in the stdlib. + * Exempt ``TypedDict`` from ``typing_extensions`` from ``too- + many-ancestor`` checks. + * Extend broad-exception-raised and broad-exception-caught to + except*. + * Fix a false-negative for unnecessary if blocks using a + different than expected ordering of arguments. + * For "import X", it will report "(standard/third party/first + party/local) import X" + * For "import X.Y" and "from X import Y", it will report + "(standard/third party/first party/local) import X.Y" + * The import category is specified to provide explanation as to + why pylint has issued the message and guidence to the + developer on how to fix the problem. + * Fix a crash when an enum class which is also decorated with a + ``dataclasses.dataclass`` decorator is defined. + +------------------------------------------------------------------- +Mon Dec 18 08:23:50 UTC 2023 - Dirk Müller + +- update to 3.0.3: + * Fixed false positive for ``unnecessary-lambda`` when the call + has keyword arguments but not the lambda. + * Fixed incorrect suggestion for shallow copy in unnecessary- + comprehension + * After changing b = [x for x in a] to b = a based on the + suggestion, the script now prints [0, 2, 3]. The correct + suggestion should be use list(a) to preserve the original + behavior. + * Fix false positives for ``undefined-variable`` and ``unused- + argument`` for classes and functions using Python 3.12 generic + type syntax. + * Fixed ``pointless-string-statement`` false positive for + docstrings on Python 3.12 type aliases. + * Fix false positive for ``invalid-exception-operation`` when + concatenating tuples of exception types. + * Fix a bug where pylint was unable to walk recursively through + a directory if the directory has an `__init__.py` file. + +------------------------------------------------------------------- +Mon Nov 27 20:00:09 UTC 2023 - Dirk Müller + +- update to 3.0.2: + * Fix ``used-before-assignment`` false positive for generic + type syntax (PEP 695, Python 3.12). + * Escape special symbols and newlines in messages. + * Fixes suggestion for ``nested-min-max`` for expressions with + additive operators, list and dict comprehensions. + * Fixes ignoring conditional imports with ``ignore-imports=y``. + * Emit ``inconsistent-quotes`` for f-strings with 3.12 + interpreter only if targeting pre-3.12 versions. + +------------------------------------------------------------------- +Fri Oct 20 11:48:34 UTC 2023 - ecsos + +- Update to 3.0.1: + * False Positives Fixed + - Fixed false positive for inherit-non-class for generic Protocols. + Closes #9106 + * Other Changes + - Fix a crash when an enum class which is also decorated with a dataclasses.dataclass decorator is defined. + Closes #9100 +- Update to 3.0.0: + - Pylint now support python 3.12 officially. + - The required astroid version is now 3.0.0 + For all chaanges see: + https://github.com/pylint-dev/pylint/releases/tag/v3.0.0 +- Changes from 2.17.7 + 2.17.7 is the last release before we only support pylint 3.0.0 or superior and python 3.8 or superior. + * False Positives Fixed + - Fix a regression in pylint 2.17.6 / astroid 2.15.7 causing various + messages for code involving TypeVar. + Closes #9069 + * Other Bug Fixes + - Fix crash in refactoring checker when unary operand used with variable in for + loop. + Closes #9074 +- Changes from 2.17.6 + * Other Bug Fixes + - When parsing comma-separated lists of regular expressions in the config, + ignore commas that are inside braces since those indicate quantifiers, not + delineation between expressions. + Closes #7229 + - sys.argv is now always correctly considered as impossible to infer + (instead of using the actual values given to pylint). + Closes #9047 + - Don't show class fields more than once in Pyreverse diagrams. + Closes #8189 + - Don't show arrows more than once in Pyreverse diagrams. + Closes #8522 + - Don't show duplicate type annotations in Pyreverse diagrams. + Closes #8888 + - Don't add Optional to | annotations with None in Pyreverse diagrams. + Closes #9014 +- Changes from 2.17.5 + * False Positives Fixed + - Fix a false positive for unused-variable when there is an import in a + if TYPE_CHECKING: block and allow-global-unused-variables is set to + no in the configuration. + Closes #8696 + - Fix false positives generated when supplying arguments as **kwargs to IO + calls like open(). + Closes #8719 + - Fix a false positive where pylint was ignoring method calls annotated as + NoReturn during the inconsistent-return-statements check. + Closes #8747 + - Exempt parents with only type annotations from the invalid-enum-extension + message. + Closes #8830 + * Other Bug Fixes + - Fixed crash when a call to super() was placed after an operator (e.g. + not). + Closes #8554 + - Fix crash for modified-while-iterating checker when deleting + members of a dict returned from a call. + Closes #8598 + - Fix crash in invalid-metaclass check when a metaclass had duplicate + bases. + Closes #8698 + - Avoid consider-using-f-string on modulos with brackets in template. + Closes #8720. + - Fix a crash when __all__ exists but cannot be inferred. + Closes #8740 + - Fix crash when a variable is assigned to a class attribute of identical name. + Closes #8754 + - Fixed a crash when calling copy.copy() without arguments. + Closes #8774 + * Other Changes + - Fix a crash when a nonlocal is defined at module-level. + Closes #8735 + +------------------------------------------------------------------- +Thu Jun 1 07:23:25 UTC 2023 - Ben Greiner + +- Update test setup: rerun flaky pyreverse tests + +------------------------------------------------------------------- +Mon May 8 15:31:49 UTC 2023 - Dirk Müller + +- update to 2.17.4: + * Fix a false positive for ``bad-dunder-name`` when there is a + user-defined ``__index__`` method. + * ``pyreverse``: added escaping of vertical bar character in + annotation labels + * produced by DOT printer to ensure it is not treated as field + separator of record-based nodes. + * Fixed a crash when generating a configuration file: + * ``tomlkit.exceptions.TOMLKitError: Can't add a table to a + dotted key`` caused by tomlkit ``v0.11.8``. + +------------------------------------------------------------------- +Mon May 8 13:57:50 UTC 2023 - Johannes Kastl + +- add sle15_python_module_pythons + +------------------------------------------------------------------- +Thu May 4 19:37:21 UTC 2023 - Dirk Müller + +- update to 2.17.3: + * Fix `unused-argument` false positive when `__new__` does not + use all the arguments of `__init__`. + * Fix ``unused-import`` false positive for usage of + ``six.with_metaclass``. + * `logging-not-lazy` is not longer emitted for explicitly + concatenated string arguments. + * Fix false positive for isinstance-second-argument-not-valid- + type when union types contains None. + * Fixed `unused-import` so that it observes the `dummy- + variables-rgx` option. + * `Union` typed variables without assignment are no longer + treated as `TypeAlias`. + * Fix false positive for ``positional-only-arguments-expected`` + when a function contains both a positional-only parameter + that has a default value, and ``**kwargs``. + * Fix false positive for ``keyword-arg-before-vararg`` when a + positional-only parameter with a default value precedes ``*args``. + * Improve output of ``consider-using-generator`` message for + ``min()` calls with ``default`` keyword. + +------------------------------------------------------------------- +Mon Apr 17 19:33:08 UTC 2023 - Dirk Müller + +- update to 2.17.2: + * invalid-name now allows for integers in typealias + names: + * now valid: Good2Name, GoodName2. + * still invalid: _1BadName. + * No longer consider Union as type annotation as type alias + for naming checks. + * unnecessary-lambda no longer warns on lambdas which use + its parameters in their body (other than the final arguments), + e.g. lambda foo: (bar if foo else baz)(foo). + * Fix a crash in pyreverse when "/" characters are used in the + output filename e.g pyreverse -o png -p name/ path/to/project. + * Add new option (--show-stdlib, -L) to pyreverse. + * This is similar to the behavior of --show-builtin in that + standard library modules are now not included by default, + and this option will include them. + * Adds asyncSetUp to the default defining-attr-methods + list to silence + * attribute-defined-outside-init warning when using + * unittest.IsolatedAsyncioTestCase. + * invalid-name now allows for integers in typealias + names: + * now valid: Good2Name, GoodName2. + * still invalid: _1BadName. + * No longer consider Union as type annotation as type alias + for naming checks. + * unnecessary-lambda no longer warns on lambdas which use + its parameters in their body (other than the final arguments), + e.g. lambda foo: (bar if foo else baz)(foo). + * --clear-cache-post-run now also clears LRU caches for + pylint utilities holding references to AST nodes. + * Fix a crash when TYPE_CHECKING is used without importing + it. + * Fix a used-before-assignment false positive when imports + are made under the TYPE_CHECKING else if branch. + * Fix a regression of preferred-modules where a partial + match was used instead of the required full match. +- drop pylint-pr7367-pythonpathtest.patch (upstream) + +------------------------------------------------------------------- +Mon Jan 9 11:54:14 UTC 2023 - Dirk Müller + +- update to v2.15.10: + * Fix use-sequence-for-iteration when unpacking a set with *. + * Fix false positive assigning-non-slot when a class attribute is + * re-assigned. + * Fixes used-before-assignment false positive when the walrus operator + * is used in a ternary operator. + * Prevent used-before-assignment when imports guarded by if TYPE_CHECKING + * are guarded again when used. + * Using custom braces in msg-template will now work properly. + +------------------------------------------------------------------- +Sat Dec 17 18:37:33 UTC 2022 - Dirk Müller + +- update to v2.15.9: + * Fix false-positive for used-before-assignment in pattern matching with a + guard. + * Pylint will no longer deadlock if a parallel job is killed but fail + immediately instead. + * When pylint exit due to bad arguments being provided the exit code will + now be the expected 32. + * Fixes a ModuleNotFound exception when running pylint on a Django project + with the pylint_django plugin enabled. + * Document a known false positive for useless-suppression when disabling + * line-too-long in a module with only comments and no code. + * Fix logging-fstring-interpolation false positive raised when logging and + f-string with %s formatting. + * Fixes false positive abstract-method on Protocol classes. + * Fix missing-param-doc false positive when function parameter has an + escaped underscore. + * multiple-statements no longer triggers for function stubs using inlined + .... + * Fix deprecated-method false positive when alias for method is similar to + * name of deprecated method. + * Fix a false positive for used-before-assignment for imports guarded by + * typing.TYPE_CHECKING later used in variable annotations. + * Other Bug Fixes + * Pylint will now filter duplicates given to it before linting. The output + * should be the same whether a file is given/discovered multiple times or + not. + * Fixes a crash in stop-iteration-return when the next builtin is + * called without arguments. + * Fix false positive for unhashable-member when subclassing dict and + * using the subclass as a dictionary key. + * unnecessary-list-index-lookup will not be wrongly emitted if + * enumerate is called with start. + * Don't warn about stop-iteration-return when using next() over + * itertools.cycle. + * Messages sent to reporter are now copied so a reporter cannot modify the + * message sent to other reporters. + * Fix crash that happened when parsing files with unexpected encoding + starting with 'utf' like utf13. + * Fix a crash when a child class with an __init__ method inherits from a + * parent class with an __init__ class attribute. + * Fix a false positive for simplify-boolean-expression when multiple + values are inferred for a constant. + * Remove __index__ dunder method call from unnecessary-dunder-call + * Fixed a multi-processing crash that prevents using any more than 1 + thread on MacOS. + * The returned module objects and errors that were cached by the linter + plugin loader cannot be reliably pickled. This means that dill would + throw an error when attempting to serialise the linter object for + multi-processing use. + * Add a keyword-only compare_constants argument to safe_infer. + * Sort --generated-rcfile output. + +------------------------------------------------------------------- +Mon Oct 17 09:46:45 UTC 2022 - Michael Ströder + +- update to 2.15.4 + * False Positives Fixed + - Fix the message for unnecessary-dunder-call for __aiter__ and + __aneext__. Also only emit the warning when py-version >= 3.10. Closes #7529 + * Other Bug Fixes + - Fix bug in detecting unused-variable when iterating on variable. Closes #3044 + - Fixed handling of -- as separator between positional arguments and flags. + This was not actually fixed in 2.14.5. Closes #7003, Refs #7096 + - Report no-self-argument rather than no-method-argument for methods + with variadic arguments. Closes #7507 + - Fixed an issue where syntax-error couldn't be raised on files with + invalid encodings. Closes #7522 + - Fix false positive for redefined-outer-name when aliasing typing + e.g. as t and guarding imports under t.TYPE_CHECKING. Closes #7524 + - Fixed a crash of the modified_iterating checker when iterating on a set + defined as a class attribute. Closes #7528 + - Fix bug in scanning of names inside arguments to typing.Literal. + See https://peps.python.org/pep-0586/#literals-enums-and-forward-references + for details. Refs #3299 + * Other Changes + - Add method name to the error messages of no-method-argument and + no-self-argument. Closes #7507 + +------------------------------------------------------------------- +Fri Sep 23 20:30:45 UTC 2022 - Ben Greiner + +- Fix astroid requirement. + +------------------------------------------------------------------- +Thu Sep 22 12:45:04 UTC 2022 - Michael Ströder + +- update to 2.15.3 + * Fixed a crash in the unhashable-member checker when using a lambda as a dict key. 7453 + * Fix a crash in the modified-iterating-dict checker involving + instance attributes. #7461 + * invalid-class-object does not crash anymore when __class__ is assigned + alongside another variable. #7467 + * Fix false positive for global-variable-not-assigned when a global + variable is re-assigned via an ImportFrom node. #4809 + * Fix false positive for undefined-loop-variable in for-else loops that + use a function having a return type annotation of NoReturn or Never. #7311 + * --help-msg now accepts a comma-separated list of message IDs again. #7471 + +------------------------------------------------------------------- +Mon Sep 12 20:22:59 UTC 2022 - Dirk Müller + +- update to 2.15.2: + * Fixed a case where custom plugins specified by command line could silently fail. + * Fix ``used-before-assignment`` for functions/classes defined in type checking guard. + * Update ``modified_iterating`` checker to fix a crash with ``for`` loops on empty list. + * The ``docparams`` extension now considers typing in Numpy style docstrings + * Fix false positive for ``unused-variable`` and ``unused-import`` when a name is only used in a string literal type annotation. + * Fix false positive for ``too-many-function-args`` when a function call is assigned to a class attribute inside the class where the function is defined. + * Fix ``used-before-assignment`` for functions/classes defined in type checking guard. + * Fix ignored files being linted when passed on stdin. + * ``missing-return-doc``, ``missing-raises-doc`` and ``missing-yields-doc`` now respect + * Don't crash on ``OSError`` in config file discovery. + * ``disable-next`` is now correctly scoped to only the succeeding line. + * Update ``modified_iterating`` checker to fix a crash with ``for`` loops on empty list. + +------------------------------------------------------------------- +Sat Aug 27 10:01:43 UTC 2022 - Ben Greiner + +- Update to version 2.15.0 + * In pylint 2.15.0, we added a new check missing-timeout to warn + of default timeout values that could cause a program to be + hanging indefinitely. + * We improved pylint's handling of namespace packages. More + packages should be linted without resorting to using the + --recursive=y option. +- Release highlights from 2.14 + * With 2.14 pylint only supports Python version 3.7.2 and above. + * We introduced several new checks among which duplicate-value + for sets, comparison-of-constants, and checks related to + lambdas. We removed no-init and made no-self-use optional as + they were too opinionated. We also added an option to generate + a toml configuration: --generate-toml-config. + * We migrated to argparse from optparse and refactored the + configuration handling thanks to Daniël van Noord. On the user + side it should change the output of the --help command, and + some inconsistencies and bugs should disappear. The behavior + between options set in a config file versus on the command line + will be more consistent. For us, it will permit to maintain + this part of the code easily in the future and anticipate + optparse's removal in Python 3.12. + * As a result of the refactor there are a lot of internal + deprecations. If you're a library maintainer that depends on + pylint, please verify that you're ready for pylint 3.0 by + activating deprecation warnings. + * We continued the integration of pylint-error and are now at + 33%!. We still welcome any community effort to help review, + integrate, and add good/bad examples + `_. This should be + doable without any pylint or astroid knowledge, so this is the + perfect entrypoint if you want to contribute to pylint or open + source without any experience with our code! +- Release highlights from 2.13 + * In 2.13, we introduced a new check to deal with unicode + security issues. On top of that a lot of work was done inside + the unicode checker by @CarliJoy. We also introduced a new + check when importing private name and for unnecessary ellipsis + among other. + * We fixed long standing issues related to duplicate code that + could not be disabled, line numbers that were not accurate some + of the time, and added the ability to lint all files in a + directory without specifying each one. One of the most + anticipated issue from the repository. Thank you @matusvalo ! + * A lot of undefined-variables and used-before-assignment issues + were resolved thanks to @jacobtylerwalls. + * We started integrating pylint-error the documentation created + by @vald-phoenix a developer from Hlyniane, Ukraine. We hope + he's doing well despite the current situation. The deployment + is set up but there's still a lot to do so we welcome any + community effort help to review, integrate, and add good/bad + examples. This should be doable without any pylint or astroid + knowledge, so this is the perfect entrypoint if you want to + contribute to pylint without investing any time learning the + internals. + * This release is the last one to support interpreter below + 3.7.2, 3.6 end of life was reached in december 2021. +- Add pylint-pr7367-pythonpathtest.patch + * gh#PyCQA/pylint#7367 + +------------------------------------------------------------------- +Sat Dec 11 14:54:24 UTC 2021 - Ben Greiner + +- Update to version 2.12.2 + * Fixed a false positive for ``unused-import`` where everything + was not analyzed properly inside typing guards. + * Fixed a false-positive regression for + ``used-before-assignment`` for typed variables in the body of + class methods that reference the same class + * Specified that the ``ignore-paths`` option considers "\" to + represent a windows directory delimiter instead of a regular + expression escape character. + * Fixed a crash with the ``ignore-paths`` option when invoking + the option via the command line. + * Fixed handling of Sphinx-style parameter docstrings with + asterisks. These should be escaped with by prepending a "\". + * Add ``endLine`` and ``endColumn`` keys to output of + ``JSONReporter``. + * Fixed handling of Google-style parameter specifications where + descriptions are on the line following the parameter name. + These were generating false positives for + ``missing-param-doc``. + * Fix false negative for ``consider-iterating-dictionary`` during + membership checks encapsulated in iterables or ``not in`` + checks + * ``unused-import`` now check all ancestors for typing guards +- Release notes for 2.12.1 + * Require Python ``3.6.2`` to run pylint. +- Release notes for 2.12.0 + * Upgrade astroid to 2.9.0 + * Add ability to add ``end_line`` and ``end_column`` to the + ``--msg-template`` option. With the standard ``TextReporter`` + this will add the line and column number of the end of a node + to the output of Pylint. If these numbers are unknown, they are + represented by an empty string. + * Introduced primer tests and a configuration tests framework. + The helper classes available in ``pylint/testutil/`` are still + unstable and might be modified in the near future. + * Fix ``install graphiz`` message which isn't needed for puml + output format. + * ``MessageTest`` of the unittest ``testutil`` now requires the + ``confidence`` attribute to match the expected value. If none + is provided it is set to ``UNDEFINED``. + * ``add_message`` of the unittest ``testutil`` now actually + handles the ``col_offset`` parameter and allows it to be + checked against actual output in a test. + * Fix a crash in the ``check_elif`` extensions where an + undetected if in a comprehension with an if statement within a + f-string resulted in an out of range error. The checker no + longer relies on counting if statements anymore and uses known + if statements locations instead. It should not crash on badly + parsed if statements anymore. + * Fix ``simplify-boolean-expression`` when condition can be + inferred as False. + * Fix exception when pyreverse parses ``property function`` of a + class. + * The functional ``testutils`` now accept ``end_lineno`` and + ``end_column``. Expected output files without these will + trigger a ``DeprecationWarning``. Expected output files can be + easily updated with the ``python tests/test_functional.py + --update-functional-output`` command. + * The functional ``testutils`` now correctly check the + distinction betweeen ``HIGH`` and ``UNDEFINED`` confidence. + Expected output files without defiend ``confidence`` levels + will now trigger a ``DeprecationWarning``. Expected output + files can be easily updated with the ``python + tests/test_functional.py --update-functional-output`` command. + * The functional test runner now supports the option + ``min_pyver_end_position`` to control on which python versions + the ``end_lineno`` and ``end_column`` attributes should be + checked. The default value is 3.8. + * Fix ``accept-no-yields-doc`` and ``accept-no-return-doc`` not + allowing missing ``yield`` or ``return`` documentation when a + docstring is partially correct + * Add an optional extension ``consider-using-any-or-all`` : + Emitted when a ``for`` loop only produces a boolean and could + be replaced by ``any`` or ``all`` using a generator. Also + suggests a suitable any or all statement. + * Properly identify parameters with no documentation and add new + message called ``missing-any-param-doc`` + * Add checkers ``overridden-final-method`` & + ``subclassed-final-class`` + * Fixed ``protected-access`` for accessing of attributes and + methods of inner classes + * Added support for ``ModuleNotFoundError`` (``import-error`` and + ``no-name-in-module``). ``ModuleNotFoundError`` inherits from + ``ImportError`` and was added in Python ``3.6`` + * ``undefined-variable`` now correctly flags variables which only + receive a type annotations and never get assigned a value + * ``undefined-variable`` now correctly considers the line + numbering and order of classes used in metaclass declarations + * ``used-before-assignment`` now correctly considers references + to classes as type annotation or default values in first-level + methods + * ``undefined-variable`` and ``unused-variable`` now correctly + trigger for assignment expressions in functions defaults + * ``undefined-variable`` now correctly triggers for assignment + expressions in if ... else statements This includes a basic + form of control flow inference for if ... else statements using + constant boolean values + * Added the ``--enable-all-extensions`` command line option. It + will load all available extensions which can be listed by + running ``--list-extensions`` + * Fix bug with importing namespace packages with relative imports + * Improve and flatten ``unused-wildcard-import`` message + * In length checker, ``len-as-condition`` has been renamed as + ``use-implicit-booleaness-not-len`` in order to be consistent + with ``use-implicit-booleaness-not-comparison``. + * Created new ``UnsupportedVersionChecker`` checker class that + includes checks for features not supported by all versions + indicated by a ``py-version``. + * Added ``using-f-string-in-unsupported-version`` checker. Issued + when ``py-version`` is set to a version that does not support + f-strings (< 3.6) + * Fix ``useless-super-delegation`` false positive when default + keyword argument is a variable. + * Properly emit ``duplicate-key`` when Enum members are duplicate + dictionary keys + * Use ``py-version`` setting for alternative union syntax check + (PEP 604), instead of the Python interpreter version. + * Subclasses of ``dict`` are regarded as reversible by the + ``bad-reversed-sequence`` checker (Python 3.8 onwards). + * Support configuring mixin class pattern via ``mixin-class-rgx`` + * Added new checker ``use-implicit-booleaness-not-comparison``: + Emitted when collection literal comparison is being used to + check for emptiness. + * ``mising-param-doc`` now correctly parses asterisks for + variable length and keyword parameters + * ``mising-param-doc`` now correctly handles Numpy parameter + documentation without explicit typing + * ``pylint`` no longer crashes when checking assignment + expressions within if-statements + * Update ``literal-comparison``` checker to ignore tuple literals + * Normalize the input to the ``ignore-paths`` option to allow + both Posix and Windows paths + * Fix double emitting of ``not-callable`` on inferrable + ``properties`` + * ``self-cls-assignment`` now also considers tuple assignment + * Fix ``missing-function-docstring`` not being able to check + ``__init__`` and other magic methods even if the + ``no-docstring-rgx`` setting was set to do so + * Added ``using-final-decorator-in-unsupported-version`` checker. + Issued when ``py-version`` is set to a version that does not + support ``typing.final`` (< 3.8) + * Added configuration option ``exclude-too-few-public-methods`` + to allow excluding classes from the ``min-public-methods`` + checker. + * The ``--jobs`` parameter now fallbacks to 1 if the host + operating system does not have functioning shared semaphore + implementation. + * Fix crash for ``unused-private-member`` when checking private + members on ``__class__`` + * Crashes when a list is encountered in a toml configuration do + not happen anymore. + * Moved ``misplaced-comparison-constant`` to its own extension + ``comparison_placement``. This checker was opinionated and now + no longer a default. It can be reactived by adding + ``pylint.extensions.comparison_placement`` to ``load-plugins`` + in your config. + * A new ``bad-configuration-section`` checker was added that will + emit for misplaced option in pylint's top level namespace for + toml configuration. Top-level dictionaries or option defined in + the wrong section will still silently not be taken into + account, which is tracked in a follow-up issue. + * Fix crash for ``protected-access`` on (outer) class traversal + * Added new checker ``useless-with-lock`` to find incorrect usage + of with statement and threading module locks. Emitted when + ``with threading.Lock():`` is used instead of ``with + lock_instance:``. + * Make yn validator case insensitive, to allow for ``True`` and + ``False`` in config files. + * Fix crash on ``open()`` calls when the ``mode`` argument is not + a simple string. + * Inheriting from a class that implements ``__class_getitem__`` + no longer raises ``inherit-non-class``. + * Pyreverse - Add the project root directory to sys.path + * Don't emit ``consider-using-f-string`` if ``py-version`` is set + to Python < ``3.6``. ``f-strings`` were added in Python ``3.6`` + * Fix regression for ``unspecified-encoding`` with + ``pathlib.Path.read_text()`` + * Don't emit ``consider-using-f-string`` if the variables to be + interpolated include a backslash + * Fixed false positive for ``cell-var-from-loop`` when variable + is used as the default value for a keyword-only parameter. + * Fix false-positive ``undefined-variable`` with ``Lambda``, + ``IfExp``, and assignment expression. + * Fix false-positive ``useless-suppression`` for + ``wrong-import-order`` + * Fixed ``toml`` dependency issue + * Fix false-positive ``useless-suppression`` for + ``line-too-long`` + * Fixed ``invalid-name`` not checking parameters of overwritten + base ``object`` methods + * Fixed crash in ``consider-using-f-string`` if ``format`` is not + called + * Fix crash with ``AssignAttr`` in ``if TYPE_CHECKING`` blocks. + * Improve node information for ``invalid-name`` on function + argument. + * Prevent return type checkers being called on functions with + ellipses as body + * Add ``is_sys_guard`` and ``is_typing_guard`` helper functions + from astroid to ``pylint.checkers.utils``. + * Fix regression on ClassDef inference + * Fix regression on Compare node inference + * Fix false-positive + ``isinstance-second-argument-not-valid-type`` with + ``typing.Callable``. + * It is now recommended to do ``pylint`` development on + ``Python`` 3.8 or higher. This allows using the latest ``ast`` + parser. + * All standard jobs in the ``pylint`` CI now run on ``Python`` + 3.8 by default. We still support python 3.6 and 3.7 and run + tests for those interpreters. + * ``TypingChecker`` + * Fix false-negative for ``deprecated-typing-alias`` and + ``consider-using-alias`` with ``typing.Type`` + + ``typing.Callable``. +- Unpin mccabe and astroid in sitelib metadata. + +------------------------------------------------------------------- +Sat Oct 16 09:24:30 UTC 2021 - Ben Greiner + +- Dropped pylint-pr4816-astroid27.patch + +------------------------------------------------------------------- +Sun Oct 3 17:04:18 UTC 2021 - Ben Greiner + +- Update to 2.11.1 + * ``unspecified-encoding`` now checks the encoding of + ``pathlib.Path()`` correctly + * The python3 porting mode checker and it's ``py3k`` option were + removed. You can still find it in older pylints versions. + * ``raising-bad-type`` is now properly emitted when raising a + string + * Added new extension ``SetMembershipChecker`` with + ``use-set-for-membership`` check: Emitted when using an + in-place defined ``list`` or ``tuple`` to do a membership + test. ``sets`` are better optimized for that. + * Added ``py-version`` config key (if ``[MASTER]`` section). Used + for version dependant checks. + Will default to whatever Python version pylint is executed + with. + * ``CodeStyleChecker`` + Added ``consider-using-assignment-expr``: Emitted when an + assignment is directly followed by an if statement and both can + be combined by using an assignment expression ``:=``. Requires + Python 3.8 + * Added ``consider-using-f-string``: Emitted when .format() or '%' + is being used to format a string. + * Fix false positive for ``consider-using-with`` if a context + manager is assigned to a variable in different paths of control + flow (e. g. if-else clause). + * https is now prefered in the documentation and + http://pylint.pycqa.org correctly redirect to + https://pylint.pycqa.org + * Fix false positive for ``function-redefined`` for simple type + annotations + * Fix false positive for ``protected-access`` if a protected + member is used in type hints of function definitions + * Fix false positive ``dict-iter-missing-items`` for dictionaries + only using tuples as keys + * The ``unspecified-encoding`` checker now also checks calls to + ``pathlib.Path().read_text()`` and + ``pathlib.Path().write_text()`` + * Fix false positive ``superfluous-parens`` for tuples created + with inner tuples + * Fix false positive ``unused-private-member`` for accessing + attributes in a class using ``cls`` + * Fix false positive ``unused-private-member`` for private + staticmethods accessed in classmethods. + * Extended ``consider-using-in`` check to work for attribute + access. + * Setting ``min-similarity-lines`` to 0 now makes the similarty + checker stop checking for duplicate code + * Fix a bug where pylint complained if the cache's parent + directory does not exist + * The ``global-variable-not-assigned`` checker now catches global + variables that are never reassigned in a + local scope and catches (reassigned) functions + * Fix false positives for invalid-all-format that are lists or + tuples at runtime + * Fix ``no-self-use`` and ``docparams extension`` for async + functions and methods. + * Add documentation for ``pyreverse`` and ``symilar`` + * Non symbolic messages with the wrong capitalisation now + correctly trigger ``use-symbolic-message-instead`` + * The ``consider-iterating-dictionary`` checker now also + considers membership checks + * The ``invalid-name`` message is now more detailed when using + multiple naming style regexes. +- Release 2.10.2 + * We now use platformdirs instead of appdirs since the latter is + not maintained. + * Fix a crash in the checker raising ``shallow-copy-environ`` + when failing to infer on ``copy.copy`` +- Release 2.10.1 + * pylint does not crash when PYLINT_HOME does not exist. +- Release 2.10.0 + * pyreverse: add option to produce colored output. + * pyreverse: add output in PlantUML format. + * ``consider-using-with`` is no longer triggered if a context + manager is returned from a function. + * pylint does not crash with a traceback anymore when a file is + problematic. It creates a template text file for opening an + issue on the bug tracker instead. + The linting can go on for other non problematic files instead + of being impossible. + * pyreverse: Show class has-a relationships inferred from the + type-hint + * Fixed a crash when importing beyond the top level package + during ``import-error`` message creation + * Added ``ignored-parents`` option to the design checker to + ignore specific classes from the ``too-many-ancestors`` check + (R0901). + * Added ``unspecified-encoding``: Emitted when open() is called + without specifying an encoding + * Improved the Similarity checker performance. Fix issue with + ``--min-similarity-lines`` used with ``--jobs``. + * Don't emit ``no-member`` error if guarded behind if statement. + * The default for ``PYLINTHOME`` is now the standard + ``XDG_CACHE_HOME``, and pylint now uses ``appdirs``. + * Added ``use-list-literal``: Emitted when ``list()`` is called + with no arguments instead of using ``[]`` + * Added ``use-dict-literal``: Emitted when ``dict()`` is called + with no arguments instead of using ``{}`` + * Added optional extension ``consider-ternary-expression``: + Emitted whenever a variable is assigned in both branches of an + if/else block. + * Added optional extension ``while-used``: Emitted whenever a + ``while`` loop is used. + * Added ``forgotten-debug-statement``: Emitted when + ``breakpoint``, ``pdb.set_trace`` or ``sys.breakpointhook`` + calls are found + * Fix false-positive of ``unused-private-member`` when using + nested functions in a class + * Fix crash for ``unused-private-member`` that occurred with + nested attributes. + * Fix a false positive for ``unused-private-member`` with class + names + * Fix false positives for ``superfluous-parens`` with walrus + operator, ternary operator and inside list comprehension. + * Added ``format-string-without-interpolation`` checker: Emitted + when formatting is applied to a string without any variables to + be replaced + * Refactor of ``--list-msgs`` & ``--list-msgs-enabled``: both + options now show whether messages are emittable with the + current interpreter. + * Fix false negative for ``used-before-assignment`` when the + variable is assigned in an exception handler, but used outside + of the handler. + * Added ``disable-next`` option: allows using `# pylint: + disable-next=msgid` to disable a message for the following line + * Added ``redundant-u-string-prefix`` checker: Emitted when the u + prefix is added to a string + * Fixed ``cell-var-from-loop`` checker: handle cell variables in + comprehensions within functions, and function default argument + expressions. Also handle basic variable shadowing. + * Fixed bug with ``cell-var-from-loop`` checker: it no longer has + false negatives when both ``unused-variable`` and + ``used-before-assignment`` are disabled. + * Fix false postive for ``invalid-all-format`` if the list or + tuple builtin functions are used + * Config files can now contain environment variables + * Fix false-positive ``used-before-assignment`` with an + assignment expression in a ``Return`` node + * Added ``use-sequence-for-iteration``: Emitted when iterating + over an in-place defined ``set``. + * ``CodeStyleChecker`` + * Limit ``consider-using-tuple`` to be emitted only for + in-place defined ``lists``. + * Emit ``consider-using-tuple`` even if list contains a + ``starred`` expression. + * Ignore decorators lines by similarities checker when ignore + signatures flag enabled + * Allow ``true`` and ``false`` values in ``pylintrc`` for better + compatibility with ``toml`` config. + * Class methods' signatures are ignored the same way as + functions' with similarities "ignore-signatures" option enabled + * Improve performance when inferring ``Call`` nodes, by utilizing + caching. + * Improve error message for invalid-metaclass when the node is an + Instance. + +------------------------------------------------------------------- +Fri Aug 20 19:24:31 UTC 2021 - Ben Greiner + +- Unskip the numpy inference tests. Note: always check with a clean + environment (osc build --clean) -- gh#PyCQA/pylint#4877 + +------------------------------------------------------------------- +Fri Aug 20 10:03:42 UTC 2021 - Ben Greiner + +- Update to 2.9.6 + * Fix a false positive undefined-variable when variable name in + decoration matches function argument +- Many more release notes from 2.9.0 to 2.9.5: + * https://github.com/PyCQA/pylint/releases + * Added time.clock to deprecated functions/methods for python 3.3 + * No longer emit consider-using-with for ThreadPoolExecutor and + ProcessPoolExecutor as they have legitimate use cases without a + with block. + * The similarity checker no longer add three trailing whitespaces + for empty lines in its report. + * Python 3.10 is now supported. + * Added various deprecated functions/methods for python 3.10, + 3.7, 3.6 and 3.3 + * setuptools_scm has been removed and replaced by tbump in order + to not have hidden runtime dependencies to setuptools +- Drop pylint-pr4450-import-init.patch +- Add pylint-pr4816-astroid27.patch + * gh#PyCQA/pylint#4816 + * remove astroid upper bound -- the previous pin broke a lot of + packages through the pkg_resources check + +------------------------------------------------------------------- +Sun Jun 6 12:04:43 UTC 2021 - Dirk Müller + +- update to 2.8.3: + * pin astroid to 2.5.6 + +----------------------------------------------------------------- +Fri May 7 14:41:41 UTC 2021 - Ben Greiner + +- Update to 2.8.2 + * Keep ``__pkginfo__.numversion`` a tuple to avoid breaking + pylint-django. + * scm_setuptools has been added to the packaging. + * Pylint's tags are now the standard form ``vX.Y.Z`` and not + ``pylint-X.Y.Z`` anymore. + * New warning message ``deprecated-class``. This message is + emitted if import or call deprecated class of the standard + library (like ``collections.Iterable`` that will be removed + Python 3.10). + * Add numversion back (temporarily) in __pkginfo__ because it + broke Pylama and revert the unnecessary pylint.version + beaking change. +- Release 2.8.0 + * New refactoring message ``consider-using-with``. This message + is emitted if resource-allocating functions or methods of the + standard library (like ``open()`` or + ``threading.Lock.acquire() ``) that can be used as a context + manager are called without a ``with`` block. + * Resolve false positives on unused variables in decorator + functions + * Add new extension ``ConfusingConsecutiveElifChecker``. This + optional checker emits a refactoring message (R5601 + ``confusing-consecutive-elif``) if if/elif statements with + different indentation levels follow directly one after the + other. + * New option ``--output=`` to output result to a file + rather than printing to stdout. + * Use a prescriptive message for ``unidiomatic-typecheck`` + * Apply ``const-naming-style`` to module constants annotated with + ``typing.Final`` + * The packaging is now done via setuptools exclusively. + ``doc``, ``tests``, ``man``, ``elisp`` and ``Changelog`` are + not packaged anymore - reducing the size of the package by 75%. + * Debian packaging is now (officially) done in https://salsa. + debian.org/python-team/packages/pylint. + * The 'doc' extra-require has been removed. + * ``__pkginfo__`` now only contain ``__version__`` (also + accessible with ``pylint.__version__``), other + meta-information are still + accessible with ``from importlib import metadata;metadata. + metadata('pylint')``. + * COPYING has been renamed to LICENSE for standardization. + * Fix false-positive ``used-before-assignment`` in function + returns. + * Updated ``astroid`` to 2.5.3 + * Add ``consider-using-min-max-builtin`` check for if + statement which could be replaced by Python builtin min or + max + * Don't auto-enable postponed evaluation of type annotations + with Python 3.10 + * Update ``astroid`` to 2.5.4 + * Add new extension ``TypingChecker``. This optional checker + can detect the use of deprecated typing aliases + and can suggest the use of the alternative union syntax + where possible. + (For example, 'typing.Dict' can be replaced by 'dict', and + 'typing.Unions' by '|', etc.) + Make sure to check the config options if you plan on using it! + * Reactivates old counts in report mode. + * During detection of ``inconsistent-return-statements`` + consider that ``assert False`` is a return node. + * Run will not fail if score exactly equals ``config. + fail_under``. + * Functions that never returns may declare ``NoReturn`` as + type hints, so that + ``inconsistent-return-statements`` is not emitted. + * Improved protected access checks to allow access inside + class methods + * Fix issue with PEP 585 syntax and the use of ``collections. + abc. Set`` + * Fix issue that caused class variables annotated with + ``typing. ClassVar`` to be + identified as class constants. Now, class variables nnotated + with ``typing.Final`` are identified as such. + * Continuous integration with read the doc has been added. + * Don't show ``DuplicateBasesError`` for attribute access + * Fix crash when checking ``setup.cfg`` for pylint config when + there are non-ascii characters in there + * Allow code flanked in backticks to be skipped by spellchecker + * Allow Python tool directives (for black, flake8, zimports, + isort, mypy, bandit, pycharm) at beginning of comments to be + skipped by spellchecker + * Fix issue that caused emacs pylint to fail when used with tramp + * Improve check for invalid PEP 585 syntax inside functions + if postponed evaluation of type annotations is enabled + * Improve check for invalid PEP 585 syntax as default + function arguments +- Release 2.7.4 + * Fix a problem with disabled msgid not being ignored + * Fix issue with annotated class constants +- Release 2.7.3 + * Introduce logic for checking deprecated attributes in + DeprecationMixin. + * Reduce usage of blacklist/whitelist terminology. Notably, + ``extension-pkg-allow-list`` is an alternative to + ``extension-pkg-whitelist`` and the message + ``blacklisted-name`` is now emitted as + ``disallowed-name``. The previous names are accepted to + maintain backward compatibility. + * Move deprecated checker to ``DeprecatedMixin`` + * Bump ``astroid`` version to ``2.5.2`` + * Fix false positive for ``method-hidden`` when using private + attribute and method + * ``use-symbolic-message-instead`` now also works on legacy + messages like ``C0111`` (``missing-docstring``). + * Remove unwanted print to stdout from ``_emit_no_member`` + * Introduce a command-line option to specify pyreverse output + directory + * Fix issue with Enums and + ``class-attribute-naming-style=snake_case`` + * Add ``allowed-redefined-builtins`` option for fine tuning + ``redefined-builtin`` check. + * Fix issue when executing with ``python -m pylint`` + * Exempt ``typing.TypedDict`` from ``too-few-public-methods`` + check. + * Fix false-positive ``no-member`` for typed annotations without + default value. + * Add ``--class-const-naming-style`` for Enum constants and + class variables annotated with ``typing.ClassVar`` + * Fix astroid.Inference error for undefined-variables with + ``len()``` + * Fix column index on FIXME warning messages + * Improve handling of assignment expressions, better edge case + handling + * Improve check if class is subscriptable PEP585 + * Fix documentation and filename handling of --import-graph + * Fix false-positive for ``unused-import`` on class keyword + arguments + * Fix regression with plugins on PYTHONPATH if latter is cwd +- Add pylint-pr4450-import-init.patch + gh#PyCQA/pylint#4450 fix broken tests + +------------------------------------------------------------------- +Mon Mar 22 13:00:31 UTC 2021 - Ben Greiner + +- Update to 2.7.2 + * Fix False Positive on ``Enum.__members__.items()``, + ``Enum.__members__.values``, and ``Enum.__members__.keys`` + * Properly strip dangerous sys.path entries (not just the first + one) + * Workflow and packaging improvements +- Release 2.7.1 + * Expose ``UnittestLinter`` in pylint.testutils + * Don't check directories starting with '.' when using + register_plugins +- Release 2.7.0 + * Introduce DeprecationMixin for reusable deprecation checks. + * Fix false positive for ``builtin-not-iterating`` when ``map`` + receives iterable + * Python 3.6+ is now required. + * Fix false positive for ``builtin-not-iterating`` when ``zip`` + receives iterable + * Add ``nan-comparison`` check for NaN comparisons + * Bug fix for empty-comment message line number. + * Only emit ``bad-reversed-sequence`` on dictionaries if below + py3.8 + * Handle class decorators applied to function. + * Add check for empty comments + * Fix minor documentation issue in contribute.rst + * Enums are now required to be named in UPPER_CASE by + ``invalid-name``. + * Add missing checks for deprecated functions. + * Postponed evaluation of annotations are now recognized by + default if python version is above 3.10 + * Fix column metadata for anomalous backslash lints + * Drop support for Python 3.5 + * Add support for pep585 with postponed evaluation + * Check alternative union syntax - PEP 604 + * Fix multiple false positives with assignment expressions + * Fix TypedDict inherit-non-class false-positive Python 3.9+ + * Fix issue with nested PEP 585 syntax + * Fix issue with nested PEP 604 syntax + * Fix a crash in ``undefined-variable`` caused by chained + attributes in metaclass + * Fix false positive for ``not-async-context-manager`` when + ``contextlib.asynccontextmanager`` is used + * Fix linter multiprocessing pool shutdown (triggered warnings + when runned in parallels with other pytest plugins) + * Fix a false-positive emission of ``no-self-use`` and + ``unused-argument`` for methods of generic structural types + (`Protocol[T]`) + * Fix bug that lead to duplicate messages when using + ``--jobs 2`` or more. + * Adds option ``check-protected-access-in-special-methods`` in + the ClassChecker to activate/deactivate + ``protected-access`` message emission for single underscore + prefixed attribute in special methods. + * Fix vulnerable regular expressions in ``pyreverse`` + * ``inconsistent-return-statements`` message is now emitted if + one of ``try/except`` statement is not returning explicitly + while the other do. + * Fix ``useless-super-delegation`` false positive when default + keyword argument is a dictionnary. + * Fix a crash when a specified config file does not exist + * Add support to ``ignored-argument-names`` in + DocstringParameterChecker and adds ``useless-param-doc`` and + ``useless-type-doc`` messages. + * Enforce docparams consistently when docstring is not present + * Fix ``duplicate-code`` false positive when lines only contain + whitespace and non-alphanumeric characters (e.g. parentheses, + bracket, comman, etc.) + * Improve lint message for ``singleton-comparison`` with bools + * Fix spell-checker crash on indented docstring lines that look + like # comments + * Fix AttributeError in checkers/refactoring.py + * Improve sphinx directives spelling filter + * Fix a bug with postponed evaluation when using aliases for + annotations. + * Fix minor documentation issues + * Improve the performance of the line length check. + * Removed incorrect deprecation of ``inspect.getfullargspec`` + * Fix ``signature-differs`` false positive for functions with + variadics + * Fix a crash in ``consider-using-enumerate`` when encountering + ``range()`` without arguments + * ``len-as-conditions`` is now triggered only for classes that + are inheriting directly from list, dict, or set and not + implementing the ``__bool__`` function, or from generators + like range or list/dict/set comprehension. This should reduce + the false positives for other classes, like pandas's DataFrame + or numpy's Array. + * Fixes duplicate-errors not working with -j2+ + * ``generated-members`` now matches the qualified name of members + * Add check for bool function to ``len-as-condition`` + * Add ``simplifiable-condition`` check for extraneous constants + in conditionals using and/or. + * Add ``condition-evals-to-constant`` check for conditionals + using and/or that evaluate to a constant. + * Changed setup.py to work with distlib + * New check: ``consider-using-generator`` + This check warns when a comprehension is used inside an + ``any`` or ``all`` function, since it is unnecessary and + should be replaced by a generator instead. Using a generator + would be less code and way faster. + * Add Github Actions to replace Travis and AppVeyor in the + future + +------------------------------------------------------------------- +Tue Feb 16 11:04:18 UTC 2021 - Michael Ströder + +- Update to 2.6.2 (no ChangeLog entry for this version) + +------------------------------------------------------------------- +Tue Feb 16 08:27:32 UTC 2021 - Michael Ströder + +- Update to 2.6.1 + * Astroid version has been set as < 2.5 (#4093) + +------------------------------------------------------------------- +Thu Dec 17 21:43:53 UTC 2020 - Benjamin Greiner + +- Skip the failing test for unused imports on python36 flavor + gh#openSUSE/python-rpm-macros#66 + +------------------------------------------------------------------- +Fri Aug 21 10:28:41 UTC 2020 - Michael Ströder + +- Update to 2.6.0 + * Fix various scope-related bugs in ``undefined-variable`` checker + * bad-continuation and bad-whitespace have been removed, black or another + formatter can help you with this better than Pylint + * The no-space-check option has been removed. It's no longer possible to + consider empty line like a `trailing-whitespace` by using clever options + * ``missing-kwoa`` is no longer emitted when dealing with overload functions + * mixed-indentation has been removed, it is no longer useful since TabError is included directly in python3 + * Add `super-with-arguments` check for flagging instances of Python 2 style super calls. + * Add an faq detailing which messages to disable to avoid duplicates w/ other popular linters + * Fix superfluous-parens false-positive for the walrus operator + * Fix `fail-under` not accepting floats + * Fix a bug with `ignore-docstrings` ignoring all lines in a module + * Fix `pre-commit` config that could lead to undetected duplicate lines of code + * Fix a crash in parallel mode when the module's filepath is not set +- removed both_isort_4_5.patch obsoleted by upstream update + +------------------------------------------------------------------- +Mon Jul 13 22:31:19 UTC 2020 - Matej Cepl + +- Added both_isort_4_5.patch (gh#PyCQA/pylint#3725) allowing + work with both versions of isort. + +------------------------------------------------------------------- +Tue Jun 23 16:28:35 UTC 2020 - Benjamin Greiner + +- test import workarounds need rework + gh#openSUSE/python-rpm-macros#48 + gh#PyCQA/pylint#3636 +- do not benchmark, just run the tests once + +------------------------------------------------------------------- +Mon Jun 8 19:33:50 UTC 2020 - Michael Ströder + +- Update to 2.5.3 + * Fix a regression where disable comments that have checker names with numbers in them are not parsed correctly + Close #3666 + * `property-with-parameters` properly handles abstract properties + Close #3600 + * `continue-in-finally` no longer emitted on Python 3.8 where it's now valid + Close #3612 + * Fix a regression where messages with dash are not fully parsed + Close #3604 + * In a TOML configuration file, it's now possible to use rich (non-string) types, such as list, integer or boolean instead of strings. For example, one can now define a *list* of message identifiers to enable like this:: + enable = [ + "use-symbolic-message-instead", + "useless-suppression", + ] + Close #3538 + * Fix a regression where the score was not reported with multiple jobs + Close #3547 + * Protect against `AttributeError` when checking `cell-var-from-loop` + Close #3646 + +------------------------------------------------------------------- +Mon May 18 17:38:20 UTC 2020 - Benjamin Greiner + +- Update to 2.5.2 + * ``pylint.Run`` accepts ``do_exit`` as a deprecated parameter + Close gh#PyCQA/pylint#3590 +- Changelog from 2.5.1 + * Fix a crash in `method-hidden` lookup for unknown base classes + Close gh#PyCQA/pylint#3527 + * Revert pylint.Run's `exit` parameter to ``do_exit`` + This has been inadvertently changed several releases ago to ``do_exit``. + Close gh#PyCQA/pylint#3533 + * ``no-value-for-parameter`` variadic detection has improved for assign statements + Close gh#PyCQA/pylint#3563 + * Allow package files to be properly discovered with multiple jobs + Close gh#PyCQA/pylint#3524 + * Allow linting directories without `__init__.py` which was a regression in 2.5. + Close gh#PyCQA/pylint#3528 +- Changelog from 2.5.0 + * Fix a false negative for ``undefined-variable`` when using class attribute in comprehension. + Close gh#PyCQA/pylint#3494 + * Fix a false positive for ``undefined-variable`` when using class attribute in decorator or as type hint. + Close gh#PyCQA/pylint#511, gh#PyCQA/pylint#1976 + * Remove HTML quoting of messages in JSON output. + Close gh#PyCQA/pylint#2769 + * Adjust the `invalid-name` rule to work with non-ASCII identifiers and add the `non-ascii-name` rule. + Close gh#PyCQA/pylint#2725 + * Positional-only arguments are taken in account for ``useless-super-delegation`` + * ``unidiomatic-typecheck`` is no longer emitted for ``in`` and ``not in`` operators + Close gh#PyCQA/pylint#3337 + * Positional-only argument annotations are taken in account for ``unused-import`` + Close gh#PyCQA/pylint#3462 + * Add a command to list available extensions. + * Allow used variables to be properly consumed when different checks are enabled / disabled + Close gh#PyCQA/pylint#3445 + * Fix dangerous-default-value rule to account for keyword argument defaults + Close gh#PyCQA/pylint#3373 + * Fix a false positive of ``self-assigning-variable`` on tuple unpacking. + Close gh#PyCQA/pylint#3433 + * ``no-self-use`` is no longer emitted for typing stubs. + Close gh#PyCQA/pylint#3439 + * Fix a false positive for ``undefined-variable`` when ``__class__`` is used + Close gh#PyCQA/pylint#3090 + * Emit ``invalid-name`` for variables defined in loops at module level. + Close gh#PyCQA/pylint#2695 + * Add a check for cases where the second argument to `isinstance` is not a type. + Close gh#PyCQA/pylint#3308 + * Add 'notes-rgx' option, to be used for fixme check. + Close gh#PyCQA/pylint#2874 + * ``function-redefined`` exempts function redefined on a condition. + Close gh#PyCQA/pylint#2410 + * ``typing.overload`` functions are exempted from docstring checks + Close gh#PyCQA/pylint#3350 + * Emit ``invalid-overridden-method`` for improper async def overrides. + Close gh#PyCQA/pylint#3355 + * Do not allow ``python -m pylint ...`` to import user code + ``python -m pylint ...`` adds the current working directory as the first element + of ``sys.path``. This opens up a potential security hole where ``pylint`` will import + user level code as long as that code resides in modules having the same name as stdlib + or pylint's own modules. + Close gh#PyCQA/pylint#3386 + * Add `dummy-variables-rgx` option for `_redeclared-assigned-name` check. + Close gh#PyCQA/pylint#3341 + * Fixed graph creation for relative paths + * Add a check for asserts on string literals. + Close gh#PyCQA/pylint#3284 + * `not in` is considered iterating context for some of the Python 3 porting checkers. + * A new check `inconsistent-quotes` was added. + * Add a check for non string assignment to __name__ attribute. + Close gh#PyCQA/pylint#583 + * `__pow__`, `__imatmul__`, `__trunc__`, `__floor__`, and `__ceil__` are recognized as special method names. + Close gh#PyCQA/pylint#3281 + * Added errors for protocol functions when invalid return types are detected. + E0304 (invalid-bool-returned): __bool__ did not return a bool + E0305 (invalid-index-returned): __index__ did not return an integer + E0306 (invalid-repr-returned): __repr__ did not return a string + E0307 (invalid-str-returned): __str__ did not return a string + E0308 (invalid-bytes-returned): __bytes__ did not return a string + E0309 (invalid-hash-returned): __hash__ did not return an integer + E0310 (invalid-length-hint-returned): __length_hint__ did not return a non-negative integer + E0311 (invalid-format-returned): __format__ did not return a string + E0312 (invalid-getnewargs-returned): __getnewargs__ did not return a tuple + E0313 (invalid-getnewargs-ex-returned): __getnewargs_ex__ did not return a tuple of the form (tuple, dict) + Close gh#PyCQA/pylint#560 + * ``missing-*-docstring`` can look for ``__doc__`` assignments. + Close gh#PyCQA/pylint#3301 + * ``undefined-variable`` can now find undefined loop iterables + Close gh#PyCQA/pylint#498 + * ``safe_infer`` can infer a value as long as all the paths share the same type. + Close gh#PyCQA/pylint#2503 + * Add a --fail-under flag, also configurable in a .pylintrc file. If + the final score is more than the specified score, it's considered a success + and pylint exits with exitcode 0. Otherwise, it's considered a failure and + pylint exits with its current exitcode based on the messages issued. + Close gh#PyCQA/pylint#2242 + * Don't emit ``line-too-long`` for multilines when `disable=line-too-long` comment stands at their end + Close gh#PyCQA/pylint#2957 + * Fixed an ``AttributeError`` caused by improper handling of ``dataclasses`` inference in ``pyreverse`` + Close gh#PyCQA/pylint#3256 + * Do not exempt bare except from ``undefined-variable`` and similar checks + If a node was wrapped in a ``TryExcept``, ``pylint`` was taking a hint + from the except handler when deciding to emit or not a message. + We were treating bare except as a fully fledged ignore but only + the corresponding exceptions should be handled that way (e.g. ``NameError`` or ``ImportError``) + Close gh#PyCQA/pylint#3235 + * No longer emit ``assignment-from-no-return`` when a function only raises an exception + Close gh#PyCQA/pylint#3218 + * Allow import aliases to exempt ``import-error`` when used in type annotations. + Close gh#PyCQA/pylint#3178 + * ``Ellipsis` is exempted from ``multiple-statements`` for function overloads. + Close gh#PyCQA/pylint#3224 + * No longer emit ``invalid-name`` for non-constants found at module level. + Pylint was taking the following statement from PEP-8 too far, considering + all module level variables as constants, which is not what the statement is saying: + `Constants are usually defined on a module level and written in + all capital letters with underscores separating words.` + Close gh#PyCQA/pylint#3111, gh#PyCQA/pylint#3132 + * Allow ``implicit-str-concat-in-sequence`` to be emitted for string juxtaposition + Close gh#PyCQA/pylint#3030 + * ``implicit-str-concat-in-sequence`` was renamed ``implicit-str-concat`` + * The ``json`` reporter no longer bypasses ``redirect_stdout``. Close #3227 + * Move ``NoFileError``, ``OutputLine``, ``FunctionalTestReporter``, + ``FunctionalTestFile``, ``LintModuleTest`` and related methods from + ``test_functional.py`` to ``pylint.testutils`` to help testing for 3rd + party pylint plugins. + * Can read config from a setup.cfg or pyproject.toml file. + Close gh#PyCQA/pylint#617 + * Fix exception-escape false positive with generators + Close gh#PyCQA/pylint#3128 + * ``inspect.getargvalues`` is no longer marked as deprecated. + * A new check ``f-string-without-interpolation`` was added + Close gh#PyCQA/pylint#3190 + * Flag mutable ``collections.*`` utilities as dangerous defaults + Close gh#PyCQA/pylint#3183 + * ``docparams`` extension supports multiple types in raises sections. + Multiple types can also be separated by commas in all valid sections. + Closes gh#PyCQA/pylint#2729 + * Allow parallel linting when run under Prospector + * Fixed false positives of ``method-hidden`` when a subclass defines the method that is being hidden. + Closes gh#PyCQA/pylint#414 + * Python 3 porting mode is 30-50% faster on most codebases + * Python 3 porting mode no longer swallows syntax errors + Closes gh#PyCQA/pylint#2956 + * Pass the actual PyLinter object to sub processes to allow using custom + PyLinter classes. + PyLinter object (and all its members except reporter) needs to support + pickling so the PyLinter object can be passed to worker processes. + * Clean up setup.py + Make pytest-runner a requirement only if running tests, similar to McCabe. + Clean up the setup.py file, resolving a number of warnings around it. + * Handle SyntaxError in files passed via ``--from-stdin`` option + Pylint no longer outputs a traceback, if a file, read from stdin, + contains a syntaxerror. + * Fix uppercase style to disallow 3+ uppercase followed by lowercase. + * Fixed ``undefined-variable`` and ``unused-import`` false positives + when using a metaclass via an attribute. + Close gh#PyCQA/pylint#1603 + * Emit ``unused-argument`` for functions that partially uses their argument list before raising an exception. + Close gh#PyCQA/pylint#3246 + * Fixed ``broad_try_clause`` extension to check try/finally statements and to + check for nested statements (e.g., inside of an ``if`` statement). + * Recognize classes explicitly inheriting from ``abc.ABC`` or having an + ``abc.ABCMeta`` metaclass as abstract. This makes them not trigger W0223. + Closes gh#PyCQA/pylint#3098 + * Fix overzealous `arguments-differ` when overridden function uses variadics + No message is emitted if the overriding function provides positional or + keyword variadics in its signature that can feasibly accept and pass on + all parameters given by the overridden function. + Close gh#PyCQA/pylint#1482, gh#PyCQA/pylint#1553 + * Multiple types of string formatting are allowed in logging functions. + The `logging-fstring-interpolation` message has been brought back to allow + multiple types of string formatting to be used. + Close gh#PyCQA/pylint#3361 +- needs python-toml now +- remove python2 compatibility requirements +- remove PYTHONDONTWRITEBYTECODE=1 -- its included in %pytest macro +- two tests need special treatment: + * test_functional[undefined_variable] gh#PyCQA/pylint#3635 + * test_do_not_import_files_from_local_directory gh#PyCQA/pylint#3636 + +------------------------------------------------------------------- +Wed Mar 18 19:37:36 UTC 2020 - Dirk Mueller + +- set locale during build/test to fix build on older releases (bsc#1124989) + +------------------------------------------------------------------- +Wed Nov 13 15:49:50 CET 2019 - Matej Cepl + +- Update to 2.4.4: + - Exempt all the names found in type annotations from ``unused-import`` + The previous code was assuming that only ``typing`` names need to be + exempted, but we need to do that for the rest of the type comment + names as well. Close #3112 + - Relax type import detection for names that do not come from + the ``typing`` module Close #3191 + +------------------------------------------------------------------- +Sat Nov 9 00:13:12 CET 2019 - Matej Cepl + +- test_types_redefined enabled again, because + gh#PyCQA/pylint#3171 has been fixed. + +------------------------------------------------------------------- +Sun Oct 27 08:30:00 UTC 2019 - Michael Ströder + +- Update to 2.4.3: + * Fix an issue with ``unnecessary-comprehension`` in comprehensions with additional repacking of elements. + * ``import-outside-toplevel`` is emitted for ``ImportFrom`` nodes as well. + * Do not emit ``no-method-argument`` for functions using positional only args. + * ``consider-using-sys-exit`` is no longer emitted when `exit` is imported in the local scope. + * `invalid-overridden-method` takes `abc.abstractproperty` in account + * Fixed ``missing-yield-type-doc`` getting incorrectly raised when + a generator does not document a yield type but has a type annotation. + * ``typing.overload`` functions are exempted from ``too-many-function-args`` + +------------------------------------------------------------------- +Wed Oct 9 11:27:15 UTC 2019 - Tomáš Chvátal + +- Update to 2.4.2: + * Various bugfixes and compat with newer releases of astroid + +------------------------------------------------------------------- +Tue Oct 8 03:01:10 CEST 2019 - Matej Cepl + +- Skip pylint/test/extensions/test_redefined.py::test_types_redefined + (gh#PyCQA/pylint#3171) + +------------------------------------------------------------------- +Wed Jul 31 18:44:31 UTC 2019 - Tomáš Chvátal + +- Do not install tests on system + +------------------------------------------------------------------- +Sat Jun 8 08:34:05 UTC 2019 - Michael Ströder + +- Added missing dependency on package python-typed-ast + +------------------------------------------------------------------- +Wed Mar 6 13:14:29 UTC 2019 - Tomáš Chvátal + +- Update to 2.3.1: + * Compat with astroid 2.2 + +------------------------------------------------------------------- +Wed Jan 2 13:20:08 UTC 2019 - Tomáš Chvátal + +- Fix build on SLE12 + +------------------------------------------------------------------- +Thu Dec 6 14:37:20 UTC 2018 - Tomáš Chvátal + +- Update to 2.2.2: + * Black is more used + * Many bugfixes + * For details see Changelog + +------------------------------------------------------------------- +Thu Dec 6 14:35:39 UTC 2018 - Tomáš Chvátal + +- Fix fdupes call + +------------------------------------------------------------------- +Thu Sep 20 07:31:06 UTC 2018 - Tomáš Chvátal + +- Depend on typed-ast as it is used in testsuite + +------------------------------------------------------------------- +Tue Sep 18 10:11:11 UTC 2018 - Tomáš Chvátal + +- Version update to 2.1.1: + * latest release supports only python3 + * Require 2.0 series astroid + +------------------------------------------------------------------- +Mon Jul 16 12:49:49 UTC 2018 - tchvatal@suse.com + +- Enable tests and make sure they pass + +------------------------------------------------------------------- +Sun Jul 15 11:33:07 UTC 2018 - michael@stroeder.com + +- Update to 1.9.2: + * New Python 3 checkers + * Added two new Python 3 porting checks + * Added a new deprecated-sys-function check + * Added xreadlines-attribute check + +------------------------------------------------------------------- +Wed Jan 24 10:30:43 UTC 2018 - tchvatal@suse.com + +- Switch to regular releases again +- Update to 1.8.2: + * Various false positives were fixed + * Many additional python3 tweaks + * For more see ChangeLog +- Drop test conditional as it is always on +- Add py2 and py3 bconds to allow building in the respective + enviroments +- Run only python3 tests it takes ages to finish and we should focus + only on one variant + * Also few tests currently fail and upstream is aware so put there + ||: + https://github.com/PyCQA/pylint/issues/1847 + +------------------------------------------------------------------- +Wed Mar 29 13:53:04 UTC 2017 - jmatejek@suse.com + +- uninstall alternatives in %postun +- add update-alternatives requires + +------------------------------------------------------------------- +Wed Mar 1 14:27:35 UTC 2017 - jmatejek@suse.com + +- update for singlespec +- enable test suite for all pythons +- update to 1.7.0 git pre-release, for python 3.6 support + (boo#1026174) + * multitude of new checkers + * support for namespace packages + * dropped pylint-gui + * see changes in /usr/share/doc/packages/python-pylint/ChangeLog + +------------------------------------------------------------------- +Wed Feb 1 08:19:18 UTC 2017 - michael@stroeder.com + +- Update to version 1.6.5 + see changes in /usr/share/doc/packages/python-pylint/ChangeLog + +------------------------------------------------------------------- +Wed Jan 11 23:20:05 UTC 2017 - ecsos@opensuse.org + +- update source url + +------------------------------------------------------------------- +Mon Aug 15 09:09:32 UTC 2016 - michael@stroeder.com + +- Update to version 1.6.4 + see changes in /usr/share/doc/packages/python-pylint/ChangeLog + +------------------------------------------------------------------- +Thu Jul 7 21:49:12 UTC 2016 - michael@stroeder.com + +- Update to version 1.6.1 + see changes in /usr/share/doc/packages/python-pylint/ChangeLog + +------------------------------------------------------------------- +Sat May 7 21:44:44 UTC 2016 - michael@stroeder.com + +- Update to version 1.5.5: + * Let visit_importfrom from Python 3 porting checker be called when everything is disabled + Because the visit method was filtering the patterns it was expecting to be activated, + it didn't run when everything but one pattern was disabled, leading to spurious false + positives + * Don't emit unsubscriptable-value for classes with unknown + base classes. + * Use an OrderedDict for storing the configuration elements + This fixes an issue related to impredictible order of the disable / enable + elements from a config file. In certain cases, the disable was coming before + the enable which resulted in classes of errors to be enabled, even though the intention + was to disable them. The best example for this was in the context of running multiple + processes, each one of it having different enables / disables that affected the output. + * Don't consider bare and broad except handlers as ignoring NameError, + AttributeError and similar exceptions, in the context of checkers for + these issues. + +------------------------------------------------------------------- +Fri Feb 12 08:25:01 UTC 2016 - jweberhofer@weberhofer.at + +- Update to version 1.5.4 + * Merge StringMethodChecker with StringFormatChecker. This fixes a + bug where disabling all the messages and enabling only a handful of + messages from the StringFormatChecker would have resulted in no + messages at all. + * Don't apply unneeded-not over sets. + +------------------------------------------------------------------- +Wed Jan 13 10:15:52 UTC 2016 - toddrme2178@gmail.com + +- Update to version 1.5.3: + * Handle the import fallback idiom with regard to wrong-import-order. + Closes issue #750. + * Decouple the displaying of reports from the displaying of messages + Some reporters are aggregating the messages instead of displaying + them when they are available. The actual displaying was conflatted + in the generate_reports. Unfortunately this behaviour was flaky + and in the case of the JSON reporter, the messages weren't shown + at all if a file had syntax errors or if it was missing. + In order to fix this, the aggregated messages can now be + displayed with Reporter.display_message, while the reports are + displayed with display_reports. + Closes issues #766 and #765. + * Ignore function calls with variadic arguments without a context. + Inferring variadic positional arguments and keyword arguments + will result into empty Tuples and Dicts, which can lead in + some cases to false positives with regard to no-value-for-parameter. + In order to avoid this, until we'll have support for call context + propagation, we're ignoring such cases if detected. + Closes issue #722. + * Treat AsyncFunctionDef just like FunctionDef nodes, + by implementing visit_asyncfunctiondef in terms of + visit_functiondef. + Closes issue #767. + * Take in account kwonlyargs when verifying that arguments + are defined with the check_docs extension. + Closes issue #745. + * Suppress reporting 'unneeded-not' inside `__ne__` methods + Closes issue #749. +- update to version 1.5.2: + * Don't crash if graphviz is not installed, instead emit a warning + letting the user to know. Closes issue #168. + * Accept only functions and methods for the deprecated-method + checker. This prevents a crash which can occur when an object + doesn't have .qname() method after the inference. + * Don't emit super-on-old-class on classes with unknown bases. + Closes issue #721. + * Allow statements in `if` or `try` blocks containing imports. + Closes issue #714. +- update to version 1.5.1: + * Fix a crash which occurred when old visit methods are encountered + in plugin modules. Closes issue #711. + * Add wrong-import-position to check_messages's decorator arguments + for ImportChecker.leave_module This fixes an esoteric bug which + occurs when ungrouped-imports and wrong-import-order are disabled + and pylint is executed on multiple files. What happens is that + without wrong-import-position in check_messages, leave_module will + never be called, which means that the first non-import node from + other files might leak into the current file, leading to + wrong-import-position being emitted by pylint. + * Fix a crash which occurred when old visit methods are encountered + in plugin modules. Closes issue #711. + * Don't emit import-self and cyclic-import for relative imports of + modules with the same name as the package itself. Closes issues + #708 and #706. +- update to version 1.5.0: + * long list of changes, see Changelog file for details +- Cleanup update-alternatives + +------------------------------------------------------------------- +Wed Sep 2 14:16:15 UTC 2015 - mcihar@suse.cz + +- Update to 1.4.4: + * Avoid breaking pylint when using logilab.common >= 1.0. + +------------------------------------------------------------------- +Mon Mar 16 12:22:48 UTC 2015 - mcihar@suse.cz + +- Update to 1.4.3: + * Remove three warnings: star-args, abstract-class-little-used, + abstract-class-not-used. These warnings don't add any real value + and they don't imply errors or problems in the code. + * Added a new option for controlling the peephole optimizer in astroid. + The option ``--optimize-ast`` will control the peephole optimizer, + which is used to optimize a couple of AST subtrees. The current problem + solved by the peephole optimizer is when multiple joined strings, + with the addition operator, are encountered. If the numbers of such + strings is high enough, Pylint will then fail with a maximum recursion + depth exceeded error, due to its visitor architecture. The peephole + just transforms such calls, if it can, into the final resulting string + and this exhibit a problem, because the visit_binop method stops being + called (in the optimized AST it will be a Const node). + +------------------------------------------------------------------- +Thu Mar 12 09:20:31 UTC 2015 - mcihar@suse.cz + +- Update to 1.4.2: + * Don't require a docstring for empty modules. Closes issue #261. + * Fix a false positive with `too-few-format-args` string warning, + emitted when the string format contained a normal positional + argument ('{0}'), mixed with a positional argument which did + an attribute access ('{0.__class__}'). + Closes issue #463. + * Take in account all the methods from the ancestors + when checking for too-few-public-methods. Closes issue #471. + * Catch enchant errors and emit 'invalid-characters-in-docstring' + when checking for spelling errors. Closes issue #469. + * Use all the inferred statements for the super-init-not-called + check. Closes issue #389. + * Add a new warning, 'unichr-builtin', emitted by the Python 3 + porting checker, when the unichr builtin is found. Closes issue #472. + * Add a new warning, 'intern-builtin', emitted by the Python 3 + porting checker, when the intern builtin is found. Closes issue #473. + * Add support for editable installations. + * The HTML output accepts the `--msg-template` option. Patch by + Dan Goldsmith. + * Add 'map-builtin-not-iterating' (replacing 'implicit-map-evaluation'), + 'zip-builtin-not-iterating', 'range-builtin-not-iterating', and + 'filter-builtin-not-iterating' which are emitted by `--py3k` when the + appropriate built-in is not used in an iterating context (semantics + taken from 2to3). + * Add a new warning, 'unidiomatic-typecheck', emitted when an explicit + typecheck uses type() instead of isinstance(). For example, + `type(x) == Y` instead of `isinstance(x, Y)`. Patch by Chris Rebert. + Closes issue #299. + * Add support for combining the Python 3 checker mode with the --jobs + flag (--py3k and --jobs). Closes issue #467. + * Add a new warning for the Python 3 porting checker, 'using-cmp-argument', + emitted when the `cmp` argument for the `list.sort` or `sorted builtin` + is encountered. + * Make the --py3k flag commutative with the -E flag. Also, this patch + fixes the leaks of error messages from the Python 3 checker when + the errors mode was activated. Closes issue #437. + +------------------------------------------------------------------- +Wed Feb 18 12:11:39 UTC 2015 - mcihar@suse.cz + +- Update to 1.4.1: + * Look only in the current function's scope for bad-super-call. + Closes issue #403. + * Check the return of properties when checking for not-callable. + Closes issue #406. + * Warn about using the input() or round() built-ins for Python 3. + Closes issue #411. + * Proper abstract method lookup while checking for + abstract-class-instantiated. Closes issue #401. + * Use a mro traversal for finding abstract methods. Closes issue #415. + * Fix a false positive with catching-non-exception and tuples of + exceptions. + * Fix a false negative with raising-non-exception, when the raise used + an uninferrable exception context. + * Fix a false positive on Python 2 for raising-bad-type, when + raising tuples in the form 'raise (ZeroDivisionError, None)'. + * Fix a false positive with invalid-slots-objects, where the slot entry + was an unicode string on Python 2. Closes issue #421. + * Add a new warning, 'redundant-unittest-assert', emitted when using + unittest's methods assertTrue and assertFalse with constant value + as argument. Patch by Vlad Temian. + * Add a new JSON reporter, usable through -f flag. + * Add the method names for the 'signature-differs' and 'argument-differs' + warnings. Closes issue #433. + * Don't compile test files when installing. + * Fix a crash which occurred when using multiple jobs and the files + given as argument didn't exist at all. + +------------------------------------------------------------------- +Mon Dec 8 10:08:10 UTC 2014 - mcihar@suse.cz + +- Lower tk dependency to Recommends as it's only needed for optional GUI + +------------------------------------------------------------------- +Mon Dec 8 10:06:19 UTC 2014 - mcihar@suse.cz + +- Update to 1.4.0: + * Added new options for controlling the loading of C extensions. + By default, only C extensions from the stdlib will be loaded + into the active Python interpreter for inspection, because they + can run arbitrary code on import. The option + `--extension-pkg-whitelist` can be used to specify modules + or packages that are safe to load. + * Change default max-line-length to 100 rather than 80 + * Drop BaseRawChecker class which were only there for backward + compat for a while now + * Don't try to analyze string formatting with objects coming from + function arguments. Closes issue #373. + * Port source code to be Python 2/3 compatible. This drops the + need for 2to3, but does drop support for Python 2.5. + * Each message now comes with a confidence level attached, and + can be filtered base on this level. This allows to filter out + all messages that were emitted even though an inference failure + happened during checking. + * Improved presenting unused-import message. Closes issue #293. + * Add new checker for finding spelling errors. New messages: + wrong-spelling-in-comment, wrong-spelling-in-docstring. + New options: spelling-dict, spelling-ignore-words. + * Add new '-j' option for running checks in sub-processes. + * Added new checks for line endings if they are mixed (LF vs CRLF) + or if they are not as expected. New messages: mixed-line-endings, + unexpected-line-ending-format. New option: expected-line-ending-format. + * 'dangerous-default-value' no longer evaluates the value of the arguments, + which could result in long error messages or sensitive data being leaked. + Closes issue #282 + * Fix a false positive with string formatting checker, when + encountering a string which uses only position-based arguments. + Closes issue #285. + * Fix a false positive with string formatting checker, when using + keyword argument packing. Closes issue #288. + * Proper handle class level scope for lambdas. + * Handle 'too-few-format-args' or 'too-many-format-args' for format + strings with both named and positional fields. Closes issue #286. +- Switched to tar.gz upstream + +------------------------------------------------------------------- +Tue Nov 4 16:16:09 UTC 2014 - mcihar@suse.cz + +- Update to 1.3.1: + * Fix a false positive with string formatting checker, when + encountering a string which uses only position-based arguments. + Closes issue #285. + * Fix a false positive with string formatting checker, when using + keyword argument packing. Closes issue #288. + * Handle 'too-few-format-args' or 'too-many-format-args' for format + strings with both named and positional fields. Closes issue #286. + * Analyze only strings by the string format checker. Closes issue #287. + * Properly handle nested format string fields. Closes issue #294. + * Properly handle unicode format strings for Python 2. + Closes issue #296. + * Fix a false positive with 'too-few-format-args', when the format + strings contains duplicate manual position arguments. + Closes issue #310. + * fixme regex handles comments without spaces after the hash. + Closes issue #311. + * Fix a crash encountered when looking for attribute docstrings. + * Fix a crash which ocurred while checking for 'method-hidden', + when the parent frame was something different than a function. + +------------------------------------------------------------------- +Tue Aug 12 11:29:31 UTC 2014 - mcihar@suse.cz + +- Adjusted dependencies as pylint 1.3.0 needs atroid 1.2.0 or newer + +------------------------------------------------------------------- +Mon Aug 11 14:12:16 UTC 2014 - mcihar@suse.cz + +- Update to version 1.3.0 + * Allow hanging continued indentation for implicitly concatenated + strings. Closes issue #232. + * PyLint works under Python 2.5 again, and its test suite passes. + * Fix some false positives for the cellvar-from-loop warnings. + Closes issue #233. + * Return new astroid class nodes when the inferencer can detect that + that result of a function invocation on a type (like `type` or + `abc.ABCMeta`) is requested. Closes #205. + * Emit 'undefined-variable' for undefined names when using the + Python 3 `metaclass=` argument. + * Checkers respect priority now. Close issue #229. + * Fix a false positive regarding W0511. Closes issue #149. + * Fix unused-import false positive with Python 3 metaclasses (#143). + * Don't warn with 'bad-format-character' when encountering + the 'a' format on Python 3. + * Add multiple checks for PEP 3101 advanced string formatting: + 'bad-format-string', 'missing-format-argument-key', + 'unused-format-string-argument', 'format-combined-specification', + 'missing-format-attribute' and 'invalid-format-index'. + * Issue broad-except and bare-except even if the number + of except handlers is different than 1. Fixes issue #113. + * Issue attribute-defined-outside-init for all cases, not just + for the last assignment. Closes issue #262. + * Emit 'not-callable' when calling properties. Closes issue #268. + * Fix a false positive with unbalanced iterable unpacking, + when encountering starred nodes. Closes issue #273. + * Add new checks, 'invalid-slice-index' and 'invalid-sequence-index' + for invalid sequence and slice indices. + * Add 'assigning-non-slot' warning, which detects assignments to + attributes not defined in slots. + * Don't emit 'no-name-in-module' for ignored modules. + Closes issue #223. + * Fix an 'unused-variable' false positive, where the variable is + assigned through an import. Closes issue #196. + * Definition order is considered for classes, function arguments + and annotations. Closes issue #257. + * Don't emit 'unused-variable' when assigning to a nonlocal. + Closes issue #275. + * Do not let ImportError propagate from the import checker, leading to crash + in some namespace package related cases. Closes issue #203. + * Don't emit 'pointless-string-statement' for attribute docstrings. + Closes issue #193. + * Use the proper mode for pickle when opening and writing the stats file. + Closes issue #148. + * Don't emit hidden-method message when the attribute has been + monkey-patched, you're on your own when you do that. + * Only emit attribute-defined-outside-init for definition within the same + module as the offended class, avoiding to mangle the output in some cases. + * Don't emit 'unnecessary-lambda' if the body of the lambda call contains + call chaining. Closes issue #243. + * Don't emit 'missing-docstring' when the actual docstring uses `.format`. + Closes issue #281. +- Use zip from pypi as this now the only distribution channel +- Add unzip to BuildRequires to above + +------------------------------------------------------------------- +Thu Jul 10 12:39:09 UTC 2014 - toddrme2178@gmail.com + +- Update to version 1.2.1 + * Restore the ability to specify the init-hook option via the + configuration file, which was accidentally broken in 1.2.0. + * Add a new warning [bad-continuation] for badly indentend continued + lines. + * Emit [assignment-from-none] when the function contains bare returns. + Fixes BitBucket issue #191. + * Added a new warning for closing over variables that are + defined in loops. Fixes Bitbucket issue #176. + * Do not warn about \u escapes in string literals when Unicode literals + are used for Python 2.*. Fixes BitBucket issue #151. + * Extend the checking for unbalanced-tuple-unpacking and + unpacking-non-sequence to instance attribute unpacking as well. + * Fix explicit checking of python script (1.2 regression, #219) + * Restore --init-hook, renamed accidentally into --init-hooks in 1.2.0 + (#211) + * Add 'indexing-exception' warning, which detects that indexing + an exception occurs in Python 2 (behaviour removed in Python 3). + +------------------------------------------------------------------- +Thu Apr 24 07:56:16 UTC 2014 - mcihar@suse.cz + +- update to version 1.2.0 + * Pass the current python paths to pylint process when invoked via + epylint. Fixes BitBucket issue #133. + * Add -i / --include-ids and -s / --symbols back as completely ignored + options. Fixes BitBucket issue #180. + * Extend the number of cases in which logging calls are detected. Fixes + bitbucket issue #182. + * Improve pragma handling to not detect pylint:* strings in non-comments. + Fixes BitBucket issue #79. + * Do not crash with UnknownMessage if an unknown message ID/name appears + in disable or enable in the configuration. Patch by Cole Robinson. + Fixes bitbucket issue #170. + * Add new warning 'eval-used', checking that the builtin function `eval` + was used. + * Make it possible to show a naming hint for invalid name by setting + include-naming-hint. Also make the naming hints configurable. Fixes + BitBucket issue #138. + * Added support for enforcing multiple, but consistent name styles for + different name types inside a single module; based on a patch written + by morbo@google.com. + * Also warn about empty docstrings on overridden methods; contributed + by sebastianu@google.com. + * Also inspect arguments to constructor calls, and emit relevant + warnings; contributed by sebastianu@google.com. + * Added a new configuration option logging-modules to make the list + of module names that can be checked for 'logging-not-lazy' et. al. + configurable; contributed by morbo@google.com. + * ensure init-hooks is evaluated before other options, notably load-plugins + (#166) + * Python 2.5 support restored: fixed small issues preventing pylint to run + on python 2.5. Bitbucket issues #50 and #62. + * bitbucket #128: pylint doesn't crash when looking + for used-before-assignment in context manager + assignments. + * Add new warning, 'bad-reversed-sequence', for checking that the + reversed() builtin receive a sequence (implements __getitem__ and __len__, + without being a dict or a dict subclass) or an instance which implements + +------------------------------------------------------------------- +Wed Mar 5 06:43:45 UTC 2014 - arun@gmx.de + +- update to version 1.1.0 + * Add new check for use of deprecated pragma directives "pylint:disable-msg" + or "pylint:enable-msg" (I0022, deprecated-pragma) which was previously + emmited as a regular warn(). + * Avoid false used-before-assignment for except handler defined + identifier used on the same line (#111). + * Combine 'no-space-after-operator', 'no-space-after-comma' and + 'no-space-before-operator' into a new warning 'bad-whitespace'. + * Add a new warning 'superfluous-parens' for unnecessary + parentheses after certain keywords. + * Fix a potential crash in the redefine-in-handler warning + if the redefined name is a nested getattr node. + * Add a new option for the multi-statement warning to + allow single-line if statements. + * Add 'bad-context-manager' error, checking that '__exit__' + special method accepts the right number of arguments. + * Run pylint as a python module 'python -m pylint' (anatoly techtonik). + * Check for non-exception classes inside an except clause. + * epylint support options to give to pylint after the file to analyze and + have basic input validation (bitbucket #53 and #54), patches provided by + felipeochoa and Brian Lane. + * Added a new warning, 'non-iterator-returned', for non-iterators + returned by '__iter__'. + * Add new checks for unpacking non-sequences in assignments + (unpacking-non-sequence) as well as unbalanced tuple unpacking + (unbalanced-tuple-unpacking). + * useless-else-on-loop not emited if there is a break in the + else clause of inner loop (#117). + * don't mark `input` as a bad function when using python3 (#110). + * badly-implemented-container caused several problems in its + current implementation. Deactivate it until we have something + better. See #112 for instance. + * Use attribute regexp for properties in python3, as in python2 + * Create the PYLINTHOME directory when needed, it might fail and lead to + spurious warnings on import of pylint.config. + * Fix setup.py so that pylint properly install on Windows when using python3 + * Various documentation fixes and enhancements + * Fix issue #55 (false-positive trailing-whitespace on Windows) + +------------------------------------------------------------------- +Fri Nov 29 09:36:36 UTC 2013 - toddrme2178@gmail.com + +- Implement update-alternatives + +------------------------------------------------------------------- +Thu Nov 28 14:33:18 UTC 2013 - toddrme2178@gmail.com + +- Update requires and buildrequires + +------------------------------------------------------------------- +Wed Nov 27 14:57:03 UTC 2013 - p.drouand@gmail.com + +- Update to version 1.0.0 + * Add check for the use of 'exec' function + * New --msg-template option to control output, deprecating "msvc" and + "parseable" output formats as well as killing `--include-ids` and `--symbols` + options + * Do not emit [fixme] for every line if the config value 'notes' + is empty, but [fixme] is enabled. + * Emit warnings about lines exceeding the column limit when + those lines are inside multiline docstrings. + * Do not double-check parameter names with the regex for parameters and + inline variables. + * Added a new warning missing-final-newline (C0304) for files missing + the final newline. + * Methods that are decorated as properties are now treated as attributes + for the purposes of name checking. + * Names of derived instance class member are not checked any more. + * Names in global statements are now checked against the regular + expression for constants. + * For toplevel name assignment, the class name regex will be used if + pylint can detect that value on the right-hand side is a class + (like collections.namedtuple()). + * Simplified invalid-name message + * Added a new warning invalid-encoded-data (W0512) for files that + contain data that cannot be decoded with the specified or + default encoding. + * New warning bad-open-mode (W1501) for calls to open (or file) that + specify invalid open modes (Original implementation by Sasha Issayev). + * New warning old-style-class (C1001) for classes that do not have any + base class. + * Add new name type 'class_attribute' for attributes defined + in class scope. By default, allow both const and variable names. + * New warning trailing-whitespace (C0303) that warns about + trailing whitespace. + * Added a new warning unpacking-in-except (W0712) about unpacking + exceptions in handlers, which is unsupported in Python 3. + * Add a configuration option for missing-docstring to + optionally exempt short functions/methods/classes from + the check. + * Add the type of the offending node to missing-docstring + and empty-docstring. + * New utility classes for per-checker unittests in testutils.py + * Do not warn about redefinitions of variables that match the + dummy regex. + * Do not treat all variables starting with _ as dummy variables, + only _ itself. + * Make the line-too-long warning configurable by adding a regex for lines + for with the length limit should not be enforced + * Do not warn about a long line if a pylint disable + option brings it above the length limit + * Do not flag names in nested with statements as undefined. + * Added a new warning 'old-raise-syntax' for the deprecated syntax + raise Exception, args + * Support for PEP 3102 and new missing-kwoa (E1125) message for missing + mandatory keyword argument (logilab.org's #107788) + * Fix spelling of max-branchs option, now max-branches + * Added a new base class and interface for checkers that work on the + tokens rather than the syntax, and only tokenize the input file + once. + * Follow astng renaming to astroid + * bitbucket #37: check for unbalanced unpacking in assignments + * bitbucket #25: fix incomplete-protocol false positive for read-only + containers like tuple + * bitbucket #16: fix False positive E1003 on Python 3 for argument-less super() + * bitbucket #6: put back documentation in source distribution + * bitbucket #15: epylint shouldn't hang anymore when there is a large + output on pylint'stderr + * bitbucket #7: fix epylint w/ python3 + * bitbucket #3: remove string module from the default list of deprecated + modules +- Remove unwanted %{py_requires} macro +- Remove redundant %clean section + +------------------------------------------------------------------- +Thu May 30 20:24:56 UTC 2013 - dmueller@suse.com + +- update to 0.28.0: + * bitbucket #1: fix "dictionary changed size during iteration" crash + * #74013: new E1310[bad-str-strip-call] message warning when a call to a + {l,r,}strip method contains duplicate characters (patch by Torsten Marek) + * #123233: new E0108[duplicate-argument-name] message reporting duplicate + argument names + * #81378: emit W0120[useless-else-on-loop] for loops without break + * #124660: internal dependencies should not appear in external dependencies + report + * #124662: fix name error causing crash when symbols are included in output + messages + * #123285: apply pragmas for warnings attached to lines to physical source + code lines + * #123259: do not emit E0105 for yield expressions inside lambdas + * #123892: don't crash when attempting to show source code line that can't + be encoded with the current locale settings + * Simplify checks for dangerous default values by unifying tests for all + different mutable compound literals. + * Improve the description for E1124[redundant-keyword-arg] + * #20693: replace pylint.el by Ian Eure version (patch by J.Kotta) + * #105327: add support for --disable=all option and deprecate the + 'disable-all' inline directive in favour of 'skip-file' (patch by + A.Fayolle) + * #110840: add messages I0020 and I0021 for reporting of suppressed + messages and useless suppression pragmas. (patch by Torsten Marek) + +------------------------------------------------------------------- +Fri May 4 09:30:09 UTC 2012 - toddrme2178@gmail.com + +- Fix rpmlint warnings +- Added full url to source file + +------------------------------------------------------------------- +Mon Apr 30 14:54:40 UTC 2012 - toddrme2178@gmail.com + +- Cleaned up spec file formatting +- Added python 3 package + +------------------------------------------------------------------- +Thu Feb 23 14:26:22 UTC 2012 - saschpe@suse.de + +- Provide detail about each version update to please darix ;-) + +------------------------------------------------------------------- +Sat Feb 18 16:06:21 UTC 2012 - toganm@opensuse.org + +- Update to version 0.25.1: + * #81078: Warn if names in exception handlers clobber + overwrite existing names (patch by tmarek@google.com) + * #81113: Fix W0702 messages appearing with the wrong line + number. (patch by tmarek@google.com) + * #50461, #52020, #51222: Do not issue warnings when using + 2.6's property.setter/deleter functionality + (patch by dneil@google.com) + * #9188, #4024: Do not trigger W0631 if a loop variable is + assigned in the else branch of a for loop. +- Changes from version 0.25.0: + * #74742: make allowed name for first argument of class method configurable + (patch by Google) + * #74087: handle case where inference of a module return YES; this avoid + some cases of "TypeError: '_Yes' object does not support indexing" (patch + by Google) + * #74745: make "too general" exception names configurable (patch by Google) + * #74747: crash occurs when lookup up a special attribute in class scope + (patch by google) + * #76920: crash if on eg "pylint --rcfile"(patch by Torsten Marek) + * #77237: warning for E0202 may be very misleading + * #73941: HTML report messages table is badly rendered + +------------------------------------------------------------------- +Wed Sep 21 14:16:13 CEST 2011 - dmueller@suse.de + +- Update to version 0.24.0: + * #69738: add regular expressions support for "generated-members" + * #69993: Additional string format checks for logging module: + check for missing arguments, too many arguments, or invalid string + formats in the logging checker module. Contributed by Daniel Arena + * #69220: add column offset to the reports. If you've a custom reporter, + this change may break it has now location gain a new item giving the + column offset. + * #60828: Fix false positive in reimport check + * #70495: absolute imports fail depending on module path (patch by Jacek Konieczny) + * #22273: Fix --ignore option documentation to match reality + +------------------------------------------------------------------- +Tue Aug 30 18:57:41 UTC 2011 - andrea.turrini@gmail.com + +- fixed typo and standardized "Authors:" format in description of + python-pylint.spec + +------------------------------------------------------------------- +Mon Apr 11 21:45:30 CEST 2011 - hpj@urpla.net + +- fix build +- Update to version 0.23.0: + * documentation update, add manpages + * several performance improvements + * finalize python3 support + * new W0106 warning 'Expression "%s" is assigned to nothing' + * drop E0501 and E0502 messages about wrong source encoding: not anymore + interesting since it's a syntax error for python >= 2.5 and we now only + support this python version and above. + * don't emit W0221 or W0222 when methods as variable arguments (eg *arg + and/or **args). Patch submitted by Charles Duffy. + +------------------------------------------------------------------- +Fri Jan 7 12:47:47 CET 2011 - hpj@urpla.net + +- Update to version 0.22.0: + * python versions: minimal python3.x support; drop python < 2.5 support + + - 2010-10-27 -- 0.21.4 + * fix #48066: pylint crashes when redirecting output containing non-ascii characters + * fix #19799: "pylint -blah" exit with status 2 + * update documentation + + - 2010-09-28 -- 0.21.3 + * restored python 2.3 compatibility. Along with logilab-astng + 0.21.3 and logilab-common 0.52, this will much probably be the + latest release supporting python < 2.5. + +------------------------------------------------------------------- +Wed Dec 1 22:30:15 CET 2010 - dmueller@suse.de + +- fix dependencies (bnc#656797) + +------------------------------------------------------------------- +Thu Aug 26 17:45:55 UTC 2010 - alexandre@exatati.com.br + +- Update to 0.21.2: + * fix #36193: import checker raise exception on cyclic import + * fix #28796: regression in --generated-members introduced pylint 0.20 + * some documentation cleanups + +------------------------------------------------------------------- +Mon Jun 7 17:10:08 UTC 2010 - alexandre@exatati.com.br + +- Update to 0.21.1: + * fix #28962: pylint crash with new options, due to missing stats data + while writing the Statistics by types report + * updated man page to 0.21 or greater command line usage (fix debian #582494) + - Aditional changes from 0.21.0: + * command line updated (closes #9774, #9787, #9992, #22962): + * all enable-* / disable-* options have been merged into --enable / --disable + * BACKWARD INCOMPATIBLE CHANGE: short name of --errors-only becomes -E, -e being + affected to --enable + * pylint --help output much simplified, with --long-help available to get the + complete one + * revisited gui, thanks to students from Toronto university (they are great + contributors to this release!) + * fix #21591: html reporter produces no output if reports is set to 'no' + * fix #4581: not Missing docstring (C0111) warning if a method is overridden + * fix #4683: Non-ASCII characters count double if utf8 encode + * fix #9018: when using defining-attr-method, method order matters + * fix #4595: Comma not followed by a space should not occurs on trailing comma + in list/tuple/dict definition + * fix #22585: [Patch] fix man warnings for pyreverse.1 manpage + * fix #20067: AttributeError: 'NoneType' object has no attribute 'name' with with +- Spec file cleaned with spec-cleaner; +- Minor changes to use macros on commands on spec file. + +------------------------------------------------------------------- +Sun Apr 18 17:03:24 CEST 2010 - dmueller@suse.de + +- update to 0.20.0: + * fix #19339: pylint.el : non existing py-mod-map + (closes Debian Bug report logs - #475939) + * implement #18860, new W0199 message on assert (a, b) + * implement #9776, 'W0150' break or return statement in finally block may + swallow exception. + * fix #9263, __init__ and __new__ are checked for unused arguments + * fix #20991, class scope definitions ignored in a genexpr + * fix #5975, Abstract intermediate class not recognized as such + * fix #5977, yield and return statement have their own counters, no more R0911 + (Too many return statements) when a function have many yield stamtements + * implement #5564, function / method arguments with leading "_" are ignored in + arguments / local variables count. + * implement #9982, E0711 specific error message when raising NotImplemented + * remove --cache-size option + +------------------------------------------------------------------- +Fri Dec 18 21:18:33 CET 2009 - dmueller@suse.de + +- update to 0.19.0 (bnc#555993): + * include James Lingard string format checker + * include simple message (ids) listing by Vincent Férotin (#9791) + * --errors-only does not hide fatal error anymore + * include james Lingard patches for ++/-- and duplicate key in dicts + * include James Lingard patches for function call arguments checker + * improved flymake code and doc provided by Derek Harland + * refactor and fix the imports checker + * fix #18862: E0601 false positive with lambda functions + * fix #8764: More than one statement on a single line false positive with + try/except/finally + * fix #9215: false undefined variable error in lambda function + * fix for w0108 false positive (Nathaniel) + * fix test/fulltest.sh + * #5821 added a utility function to run pylint in another process (patch provide by Vincent Férotin) + +------------------------------------------------------------------- +Wed Sep 16 22:47:49 CEST 2009 - poeml@suse.de + +- fix build on SLE10 by not including %{py_sitedir}/*egg-info in + the filelist there + +------------------------------------------------------------------- +Wed Sep 9 21:08:26 CEST 2009 - dmueller@suse.de + +- update to 0.18.1: + * improved flymake code and doc provided by Derek Harland + * refactor & fix the imports checker + * fix #8764: More than one statement on a single line false positive with + try/except/finally + * Nathaniel's fix for w0108 false positive + * fix 9215: false undefined variable error in lambda function + +------------------------------------------------------------------- +Sat Aug 8 23:15:52 CEST 2009 - hpj@urpla.net + +- rename package to python-pylint + +------------------------------------------------------------------- +Wed Aug 5 15:47:50 CEST 2009 - hpj@urpla.net + +- Update to version 0.18.0: + * tests ok with python 2.4, 2.5, 2.6. 2.3 not tested + * fix #8687, W0613 false positive on inner function + * fix #8350, C0322 false positive on multi-line string + * fix #8332: set E0501 line no to the first line where non ascii character + has been found + * avoid some E0203 / E0602 false negatives by detecting respectivly + AttributeError / NameError + * implements #4037: don't issue W0142 (* or ** magic) when they are barely + passed from */** arguments + * complete #5573: more complete list of special methods, also skip W0613 + for python internal method + * don't show information messages by default + + 2009-03-19 -- 0.17.0 + * semicolon check : move W0601 to W0301 + * remove rpython : remove all rpython checker, modules and tests + * astng 0.18 compatibility: support for _ast module modifies interfaces + + 2009-01-28 -- 0.16.0 + * change [en|dis]able-msg-cat options: only accept message categories + identified by their first letter (eg IRCWEF) without the need for comma + as separator + * add epylint.bat script to fix Windows installation + * setuptools/easy_install support + * include a modified version of Maarten ter Huurne patch to avoid W0613 + warning on arguments from overridden method + * implement #5575 drop dumb W0704 message) by adding W0704 to ignored + messages by default + * new W0108 message, checking for suspicious lambda (provided by Nathaniel + Manista) + * fix W0631, false positive reported by Paul Hachmann + * fix #6951: false positive with W0104 + * fix #6949 + * patches by Mads Kiilerich: + * implement #4691, make pylint exits with a non zero return + status if any messages other then Information are issued + * fix #3711, #5626 (name resolution bug w/ decorator and class members) + * fix #6954 + + 2008-10-13 -- 0.15.2 + * fix #5672: W0706 weirdness ( W0706 removed ) + * fix #5998: documentation points to wrong url for mailing list + * fix #6022: no error message on wrong module names + * fix #6040: pytest doesn't run test/func_test.py + + 2008-09-15 -- 0.15.1 + * fix #4910: default values are missing in manpage + * fix #5991: missing files in 0.15.0 tarball + * fix #5993: epylint should work with python 2.3 + +------------------------------------------------------------------- +Fri Sep 12 17:59:47 CEST 2008 - garloff@suse.de + +- Update to version 0.15.0: + * include pyreverse package and class diagram generation + * included Stefan Rank's patch to deal with 2.4 relative import + * included Robert Kirkpatrick's tutorial and typos fixes + * fix bug in reenabling message + * fix #2473: invoking pylint on __init__.py (hopefuly) + * typecheck: acquired-members option has been dropped in favor of the more + generic generated-members option. If the zope option is set, the behaviour + is now to add some default values to generated-members. + * flymake integration: added bin/epylint and elisp/pylint-flymake.el + +------------------------------------------------------------------- +Fri Aug 22 18:26:44 CEST 2008 - garloff@suse.de + +- Update to verions 0.14.0: + * fix #3733: Messages (dis)appear depending on order of file names + * fix #4026: pylint.el should require compile + * fix a bug in colorized reporter, spotted by Dave Borowitz + * applied patch from Stefan Rank to avoid W0410 false positive when + multiple "from __future__" import statements + * implement #4012: flag back tick as deprecated (new W0333 message) + * new ignored-class option on typecheck checker allowing to skip members + checking based on class name (patch provided by Thomas W Barr) + +------------------------------------------------------------------- +Tue Jul 17 01:59:42 CEST 2007 - garloff@suse.de + +- Update to pylint 0.13.2: + * fix disable-checker option so that it won't accidentally enable the + rpython checker which is disabled by default + * added note about the gedit plugin into documentation +- Update to pylint 0.13.1: + * fix some unexplained 0.13.0 packaging issue which led a bunch of + files missing from the distribution +- Update to pylint 0.13.0: + * new RPython (Restricted Python) checker for PyPy felow or people + wanting to get a compiled version of their python program using the + translator of the PyPy project. For more information about PyPy or + RPython, visit http://codespeak.net/pypy/ + * new E0104 and E0105 messages introduced to respectivly warn about + "return" and "yield" outside function or method + * new E0106 message when "yield" and "return something" are mixed in a + function or method + * new W0107 message for unnecessary pass statement + * new W0614 message to differentiate between unused 'import X' and + unused 'from X import *" (#3209, patch submitted by Daniel Drake) + * included Daniel Drake's patch to have a different message E1003 instead of + E1001 when a missing member is found but an inference failure has been + detected + * msvs reporter for Visual Studio line number reporting (#3285) + * allow disable-all option inline (#3218, patch submitted by Daniel Drake) + * --init-hook option to call arbitray code necessary to set + environment (eg sys.path) (#3156) + * One more Daniel's patch fixing a command line option parsing + problem, this'll definitly be the DDrake release :) + * fix #3184: crashes on "return" outside function + * fix #3205: W0704 false positive + * fix #3123: W0212 false positive on static method + * fix #2485: W0222 false positive + * fix #3259: when a message is explicitly enabled, check the checker + emitting it is enabled +- Update to pylint 0.12.2: + * fix #3143: W0233 bug w/ YES objects + * fix #3119: Off-by-one error counting lines in a file + * fix #3117: ease sys.stdout overriding for reporters + * fix #2508: E0601 false positive with lambda + * fix #3125: E1101 false positive and a message duplication. Only the last part + is actually fixed since the initial false positive is due to dynaming setting of + attributes on the decimal.Context class. + * fix #3149: E0101 false positives and introduced E0100 for generator __init__ + methods + * fixed some format checker false positives +- Update to pylint 0.12.1: + * fixed python >= 2.4 format false positive with multiple lines statement + * fixed some 2.5 issues + * fixed generator expression scope bug (depends on astng 0.16.1) + * stop requiring __revision__ + + +------------------------------------------------------------------- +Tue Sep 26 14:51:57 CEST 2006 - cthiel@suse.de + +- fix build with python 2.5 +- update to version 0.12.0 + * usability changes: + o parseable, html and color options are now handled by a single + output-format option + o enable- and disable-all options are now handled by + two (exclusive) enable-checker and disable-checker options + taking a comma separated list of checker names as value + o renamed debug-mode option to errors-only + * started a reference user manual + * new W0212 message for access to protected member from client code + * new W0105 and W0106 messages extracted from W0104 (statement seems to + have no effect) respectivly when the statement is actually string + (that's sometimes used instead of comments for documentation) or an + empty statement generated by a useless semicolumn + * reclassified W0302 to C0302 + * fix so that global messages are not anymore connected to the last + analyzed module + * fix some bugs related to local disabling of messages + * fix cr/lf pb when generating the rc file on windows platforms +- changes from 0.10.0 to 0.11.0 + * fix crash caused by the exceptions checker in some case + * fix some E1101 false positive with abstract method or classes defining + __getattr__ + * dirty fix to avoid "_socketobject" has not "connect" member. The actual + problem is that astng isn't able to understand the code used to create + socket.socket object with exec + * added an option in the similarity checker to ignore docstrings, enabled + by default + * included patch from Benjamin Niemann to allow block level + enabling/disabling of messages +- changes from 0.9.0 to 0.10.0 + * WARNING, this release include some configuration changes (see below), so + you may have to check and update your own configuration file(s) if you + use one + * this release require the 0.15 version of astng or superior (it will save + you a lot of pylint crashes...) + * W0705 has been reclassified to E0701, and is now detecting more + inheriting problem, and a false positive when empty except clause is + following an Exception catch has been fixed + * E0212 and E0214 (metaclass/class method should have mcs/cls as first + argument have been reclassified to C0202 and C0203 since this not as + well established as "self" for instance method (E0213) + * W0224 has been reclassified into F0220 (failed to resolve interfaces + implemented by a class) + * a new typecheck checker, introducing the following checks: + o E1101, access to unexistant member (implements #10430), remove the + need of E0201 and so some options has been moved from the classes + checker to this one + o E1102, calling a non callable object + o E1111 and W1111 when an assigment is done on a function call but the + infered function returns None (implements #10431) + * change in the base checker: + o checks module level and instance attribute names (new const-rgx + and attr-rgx configuration option) + o list comprehension and generator expression variables have their + own regular expression (the inlinevar-rgx option) + o the C0101 check with its min-name-lentgh option has + been removed (this can be specified in the regxp after all...) + o W0103 and W0121 are now handled by the variables checker + (W0103 is now W0603 and W0604 has been splitted into different messages) + o W0131 and W0132 messages have been reclassified to C0111 and + C0112 respectivly + o new W0104 message on statement without effect + * regexp support for dummy-variables (dummy-variables-rgx option + replace dummy-variables) + * better global statement handling, see W0602, W0603, W0604 messages + * --debug-mode option, disabling all checkers without error message + and filtering others to only display error + * fixed some R0201 (method could be a function) false positive + +------------------------------------------------------------------- +Tue Feb 28 16:46:02 CET 2006 - jmatejek@suse.cz + +- updated to reflect python changes due to #149809 + +------------------------------------------------------------------- +Sat Jan 28 01:42:00 CET 2006 - garloff@suse.de + +- Update to 0.9.0: + * Updates induced by astng-0.14. + * Allow additional plugins. + * Use local dir's pylintrc in preference over others. + * Many bugfixes (W0706, E0611, E0203, E0214, W0212, W0401, #9789) + +------------------------------------------------------------------- +Wed Jan 25 21:40:43 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Thu Dec 22 11:09:58 CET 2005 - garloff@suse.de + +- Add dependency on python-logilab-astng. + +------------------------------------------------------------------- +Mon Dec 19 23:54:21 CET 2005 - garloff@suse.de + +- Update to 0.8.1: + * fix "deprecated module" false positive when the code imports a + module whose name starts with a deprecated module's name. + * fix "module has no name __dict__" false positive. + * fix "access to undefined variable __path__" false positive. + * fix "explicit return in __init__" false positive when return is + actually in an inner function. +- Update to 0.8.0: + * check names imported from a module exists in the module (E0611), + patch contributed by Amaury Forgeot d'Arc. + * print a warning (W0212) for methods that could be a function. + * new --defining-attr-methods option on classes checker. + * new --acquired-members option on the classes checker, used when + --zope=yes to avoid false positive on acquired attributes (listed + using this new option). + * generate one E0602 for each use of an undefined variable + (previously, only one for the first use but not for the following). + * make profile option saveable. + * fix Windows .bat file, patch contributed by Amaury Forgeot d'Arc + * fix one more false positive for E0601 (access before definition) + with for loop such as "for i in range(10): print i" (test + func_noerror_defined_and_used_on_same_line) + * fix false positive for E0201 (undefined member) when accessing to + __name__ on a class object + * fix astng checkers traversal order + * fix bug in format checker when parsing a file from a platform + using different new line characters + * fix encoding detection regexp + * fix --rcfile handling (support for --rcfile=file, close #9590) +- bzip2 sources. + +------------------------------------------------------------------- +Sat Aug 13 00:51:25 CEST 2005 - ro@suse.de + +- remove noarch for now + +------------------------------------------------------------------- +Tue Jul 26 02:56:40 CEST 2005 - garloff@suse.de + +- Make it a noarch package. + +------------------------------------------------------------------- +Sun Jul 17 15:17:57 CEST 2005 - garloff@suse.de + +- Initial creation of package pylint-0.7.0. + diff --git a/python-pylint.spec b/python-pylint.spec new file mode 100644 index 0000000..39e6815 --- /dev/null +++ b/python-pylint.spec @@ -0,0 +1,136 @@ +# +# spec file for package python-pylint +# +# Copyright (c) 2025 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%bcond_without tests +%{?sle15_python_module_pythons} +Name: python-pylint +Version: 3.3.7 +Release: 0 +Summary: Syntax and style checker for Python code +License: GPL-2.0-or-later +URL: https://github.com/pylint-dev/pylint +# Tests are no longer packaged in the PyPI sdist, use GitHub archive +Source: https://github.com/pylint-dev/pylint/archive/refs/tags/v%{version}.tar.gz#/pylint-%{version}-gh.tar.gz +BuildRequires: %{python_module base >= 3.7.2} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: python-dill >= 0.3.7 +Requires: python-platformdirs >= 2.2 +Requires: python-tomlkit >= 0.10.1 +Requires: (python-astroid >= 3.3.8 with python-astroid < 4.0.0~dev0) +Requires: (python-isort >= 4.2.5 with python-isort < 7) +Requires: (python-mccabe >= 0.6 with python-mccabe < 0.8) +%if 0%{?python_version_nodots} < 311 +Requires: python-tomli >= 1.1.0 +%endif +%if 0%{?python_version_nodots} < 310 +Requires: python-typing-extensions >= 3.10 +%endif +%if %{with tests} +# SECTION pylint deps +BuildRequires: %{python_module astroid >= 3.3.8 with %python-astroid < 4.0.0~dev0} +BuildRequires: %{python_module dill >= 0.3.7} +BuildRequires: %{python_module enchant} +BuildRequires: %{python_module isort >= 4.2.5 with %python-isort < 7} +BuildRequires: %{python_module mccabe >= 0.6 with %python-mccabe < 0.8} +BuildRequires: %{python_module platformdirs >= 2.2} +BuildRequires: %{python_module tomli >= 1.1.0 if %python-base < 3.11} +BuildRequires: %{python_module tomlkit >= 0.10.1} +BuildRequires: %{python_module typing-extensions >= 3.10 if %python-base < 3.10} +# /SECTION +# SECTION test deps +BuildRequires: %{python_module GitPython > 3} +BuildRequires: %{python_module pytest-rerunfailures} +BuildRequires: %{python_module pytest-timeout >= 2.2} +BuildRequires: %{python_module pytest-xdist} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module requests} +# /SECTION +%endif +Requires(post): update-alternatives +Requires(postun): update-alternatives +BuildArch: noarch +%python_subpackages + +%description +Pylint analyzes Python source code looking for bugs and signs of poor +quality. + +Pylint is a python tool that checks if a module satisfies a coding +standard. Pylint can be seen as another PyChecker since nearly all +tests you can do with PyChecker can also be done with Pylint. But +Pylint offers some more features, like checking line-code's length, +checking if variable names are well-formed according to your coding +standard, or checking if declared interfaces are truly implemented, and +much more (see the complete check list). + +The big advantage with Pylint is that it is highly configurable, +customizable, and you can easily write a small plugin to add a personal +feature. + +%prep +%autosetup -p1 -n pylint-%{version} +sed -i '1{/^#!/ d}' pylint/__main__.py + +%build +export LC_ALL="en_US.UTF-8" +%pyproject_wheel + +%install +export LC_ALL="en_US.UTF-8" +%pyproject_install +for p in pylint pyreverse symilar pylint-config ; do + %python_clone -a %{buildroot}%{_bindir}/$p +done +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%if %{with tests} +%check +export LC_ALL="en_US.UTF-8" +# reruns: tests/pyreverse is incredibly non-deterministic in failures +donttest="test_linter_with_unpickleable_plugins_is_pickleable" +# Fails with pytest-8 gh#pylint-dev/pylint#9545 +donttest+=" or recursion_error_3159" +# Fails with python 3.12 +donttest+=" or test_functional_relation_extraction" +# Broken upstream +donttest+=" or test_functional" +%pytest -n auto --ignore tests/benchmark --reruns 5 -rsfER -k "not ($donttest)" +%endif + +%post +%python_install_alternative pylint pyreverse symilar pylint-config + +%postun +%python_uninstall_alternative pylint + +%files %{python_files} +%license LICENSE +%doc README.rst +%doc examples/ +%python_alternative %{_bindir}/pylint +%python_alternative %{_bindir}/pylint-config +%python_alternative %{_bindir}/pyreverse +%python_alternative %{_bindir}/symilar +%{python_sitelib}/pylint/ +%{python_sitelib}/pylint-%{version}.dist-info + +%changelog diff --git a/support-astroid-3.3.patch b/support-astroid-3.3.patch new file mode 100644 index 0000000..428f671 --- /dev/null +++ b/support-astroid-3.3.patch @@ -0,0 +1,35 @@ +From 8afd218a922b9b572c508ada228b7ed27a607014 Mon Sep 17 00:00:00 2001 +From: Jacob Walls +Date: Sun, 4 Aug 2024 11:46:21 -0400 +Subject: [PATCH 2/4] Bump astroid to 3.3.0 + +--- + pyproject.toml | 2 +- + requirements_test_min.txt | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +Index: pylint-3.2.6/pyproject.toml +=================================================================== +--- pylint-3.2.6.orig/pyproject.toml ++++ pylint-3.2.6/pyproject.toml +@@ -41,7 +41,7 @@ dependencies = [ + # Also upgrade requirements_test_min.txt. + # Pinned to dev of second minor update to allow editable installs and fix primer issues, + # see https://github.com/pylint-dev/astroid/issues/1341 +- "astroid>=3.2.4,<=3.3.0-dev0", ++ "astroid>=3.3.0,<=3.4.0-dev0", + "isort>=4.2.5,<6,!=5.13.0", + "mccabe>=0.6,<0.8", + "tomli>=1.1.0;python_version<'3.11'", +Index: pylint-3.2.6/requirements_test_min.txt +=================================================================== +--- pylint-3.2.6.orig/requirements_test_min.txt ++++ pylint-3.2.6/requirements_test_min.txt +@@ -1,6 +1,6 @@ + .[testutils,spelling] + # astroid dependency is also defined in pyproject.toml +-astroid==3.2.4 # Pinned to a specific version for tests ++astroid==3.3.0 # Pinned to a specific version for tests + typing-extensions~=4.11 + py~=1.11.0 + pytest~=8.2