* Thu May 15 2025 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 08 2025 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 2024 code@bnavigator.de
- Revert restriction to python3.
* Wed Sep 25 2024 ecsos@opensuse.org
- Fix build error under Leap.
* Tue Sep 24 2024 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 2024 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 09 2024 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 2024 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 2024 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 2023 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.
Version: 1.8.2-150000.3.5.2
* Tue Jul 19 2022 steven.kowalik@suse.com
- Remove execute bit from a test script to remove an unnecessary
Requires. (bsc#1199219)
* Wed Jan 24 2018 tchvatal@suse.com
- Switch to regular releases again
- Update to 1.8.3:
* 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 2017 jmatejek@suse.com
- uninstall alternatives in %postun
- add update-alternatives requires
* Wed Mar 01 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 01 2017 michael@stroeder.com
- Update to version 1.6.5
see changes in /usr/share/doc/packages/python-pylint/ChangeLog
* Wed Jan 11 2017 ecsos@opensuse.org
- update source url
* Mon Aug 15 2016 michael@stroeder.com
- Update to version 1.6.4
see changes in /usr/share/doc/packages/python-pylint/ChangeLog
* Thu Jul 07 2016 michael@stroeder.com
- Update to version 1.6.1
see changes in /usr/share/doc/packages/python-pylint/ChangeLog
* Sat May 07 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 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 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 02 2015 mcihar@suse.cz
- Update to 1.4.4:
* Avoid breaking pylint when using logilab.common >= 1.0.
* Mon Mar 16 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 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 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 08 2014 mcihar@suse.cz
- Lower tk dependency to Recommends as it's only needed for optional GUI
* Mon Dec 08 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 04 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 2014 mcihar@suse.cz
- Adjusted dependencies as pylint 1.3.0 needs atroid 1.2.0 or newer
* Mon Aug 11 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