What's New in Pylint 2.3
************************

Release:
   2.3

Date:
   2019-02-27


Summary -- Release highlights
=============================

* This release improves the performance of the 2.X series after it was
  affected by a performance regression a couple of releases ago.


New checkers
============

* We added a new check message "wrong-exception-operation". This is
  emitted when an operation is done against an exception, but the
  operation is not valid for the exception in question. Usually
  emitted when having binary operations between exceptions in except
  handlers.

  Closes #2494

* We added a new "no-else-raise" warning similar to "no-else-return"

  Closes #2558

* We added a new option "check-str-concat-over-line-jumps" to check
  "implicit-str-concat-in-sequence" over multiple lines.


Other Changes
=============

Quite a lot of bug fixes and improvements went into this release,
here's a handful of them. For the full changes, check the Changelog.

* We no longer emit "*-not-iterating" checks for builtins consumed by
  "itertools"

* We fixed some false positives for "no-self-argument" and
  "unsubscriptable-object" when using "__class_getitem__" (new in
  Python 3.7)

* "pylint" now supports "Ellipsis" as a synonym for "pass" statements.

* "fixme" gets triggered only on comments.

* "pylint" exempts starred unpacking from "*-not-iterating" Python 3
  checks.

* "compare-to-zero" is now less zealous by checking against equality
  and identity.

*``yield from`` is exempted from ``*-not-iterating`` Python 3 checks.

* A false positive with "not-async-context-manager" caused by not
  understanding "contextlib.asynccontextmanager" was fixed.

* We refactored "bad-reversed-sequence" to account for more objects
  that can define "__reversed__".

* "no-member" is now emitted for enums when they lack a member.

* Plugins can now use the "load_configuration()" hook. This hook is
  executed after configuration is loaded to prevent overwriting plugin
  specific configuration via user-based configuration.

* There's a new command line option "list-groups" for listing all the
  check groups "pylint" knows about. This is useful to know what
  groups you can disable or enable individually.
