File python-pylint.changes of Package python-pylint
-------------------------------------------------------------------
Thu May 15 08:56:07 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- 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 <steven.kowalik@suse.com>
- 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 <code@bnavigator.de>
- Revert restriction to python3.
-------------------------------------------------------------------
Wed Sep 25 11:52:49 UTC 2024 - ecsos <ecsos@opensuse.org>
- Fix build error under Leap.
-------------------------------------------------------------------
Tue Sep 24 13:46:18 UTC 2024 - Dirk Müller <dmueller@suse.com>
- 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 <steven.kowalik@suse.com>
- 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 <daniel.garcia@suse.com>
- 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 <dmueller@suse.com>
- 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 <dmueller@suse.com>
- 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 <dmueller@suse.com>
- 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 <dmueller@suse.com>
- 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 <ecsos@opensuse.org>
- 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 <code@bnavigator.de>
- Update test setup: rerun flaky pyreverse tests
-------------------------------------------------------------------
Mon May 8 15:31:49 UTC 2023 - Dirk Müller <dmueller@suse.com>
- 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 <kastl@b1-systems.de>
- add sle15_python_module_pythons
-------------------------------------------------------------------
Thu May 4 19:37:21 UTC 2023 - Dirk Müller <dmueller@suse.com>
- 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 <dmueller@suse.com>
- 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 <dmueller@suse.com>
- 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 <dmueller@suse.com>
- 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 <michael@stroeder.com>
- 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 <code@bnavigator.de>
- Fix astroid requirement.
-------------------------------------------------------------------
Thu Sep 22 12:45:04 UTC 2022 - Michael Ströder <michael@stroeder.com>
- 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 <dmueller@suse.com>
- 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 <code@bnavigator.de>
- 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
<https://github.com/PyCQA/pylint/issues/5953>`_. 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 <code@bnavigator.de>
- 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 <code@bnavigator.de>
- Dropped pylint-pr4816-astroid27.patch
-------------------------------------------------------------------
Sun Oct 3 17:04:18 UTC 2021 - Ben Greiner <code@bnavigator.de>
- 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 <code@bnavigator.de>
- 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 <code@bnavigator.de>
- 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 <dmueller@suse.com>
- update to 2.8.3:
* pin astroid to 2.5.6
-----------------------------------------------------------------
Fri May 7 14:41:41 UTC 2021 - Ben Greiner <code@bnavigator.de>
- 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=<file>`` 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 <code@bnavigator.de>
- 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 <michael@stroeder.com>
- Update to 2.6.2 (no ChangeLog entry for this version)
-------------------------------------------------------------------
Tue Feb 16 08:27:32 UTC 2021 - Michael Ströder <michael@stroeder.com>
- Update to 2.6.1
* Astroid version has been set as < 2.5 (#4093)
-------------------------------------------------------------------
Thu Dec 17 21:43:53 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- 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 <michael@stroeder.com>
- 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 <mcepl@suse.com>
- 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 <code@bnavigator.de>
- 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 <michael@stroeder.com>
- 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 <code@bnavigator.de>
- 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 <score> 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 <dmueller@suse.com>
- set locale during build/test to fix build on older releases (bsc#1124989)
-------------------------------------------------------------------
Wed Nov 13 15:49:50 CET 2019 - Matej Cepl <mcepl@suse.com>
- 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 <mcepl@suse.com>
- test_types_redefined enabled again, because
gh#PyCQA/pylint#3171 has been fixed.
-------------------------------------------------------------------
Sun Oct 27 08:30:00 UTC 2019 - Michael Ströder <michael@stroeder.com>
- 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 <tchvatal@suse.com>
- Update to 2.4.2:
* Various bugfixes and compat with newer releases of astroid
-------------------------------------------------------------------
Tue Oct 8 03:01:10 CEST 2019 - Matej Cepl <mcepl@suse.com>
- 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 <tchvatal@suse.com>
- Do not install tests on system
-------------------------------------------------------------------
Sat Jun 8 08:34:05 UTC 2019 - Michael Ströder <michael@stroeder.com>
- Added missing dependency on package python-typed-ast
-------------------------------------------------------------------
Wed Mar 6 13:14:29 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
- Update to 2.3.1:
* Compat with astroid 2.2
-------------------------------------------------------------------
Wed Jan 2 13:20:08 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
- Fix build on SLE12
-------------------------------------------------------------------
Thu Dec 6 14:37:20 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
- 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 <tchvatal@suse.com>
- Fix fdupes call
-------------------------------------------------------------------
Thu Sep 20 07:31:06 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
- Depend on typed-ast as it is used in testsuite
-------------------------------------------------------------------
Tue Sep 18 10:11:11 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
- 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-<checkerid> 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.
-------------------------------------------------------------------