-----------------------------------------------------------------
- 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
OBS-URL: https://build.opensuse.org/request/show/891349
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=122
- 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
OBS-URL: https://build.opensuse.org/request/show/880524
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=120
- 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
OBS-URL: https://build.opensuse.org/request/show/812727
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=108
- 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
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=102
* 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``
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=99
- 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).
OBS-URL: https://build.opensuse.org/request/show/290987
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=61
- 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
OBS-URL: https://build.opensuse.org/request/show/290392
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=60
- 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.
OBS-URL: https://build.opensuse.org/request/show/286614
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=59
- Lower tk dependency to Recommends as it's only needed for optional GUI
- 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.
OBS-URL: https://build.opensuse.org/request/show/264382
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=58
- 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.
OBS-URL: https://build.opensuse.org/request/show/259680
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=57
- Use zip from pypi as this now the only distribution channel
- Add unzip to BuildRequires to above
- Adjusted dependencies as pylint 1.3.0 needs atroid 1.2.0 or newer
- 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'
OBS-URL: https://build.opensuse.org/request/show/244311
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=56
- 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
OBS-URL: https://build.opensuse.org/request/show/231234
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=54
* 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)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=5