| Full changelog |
| ============== |
| |
| What's New in Pylint 2.3.0? |
| --------------------------- |
| Release date: 2019-02-27 |
| |
| * Protect against ``NonDeducibleTypeHierarchy`` when calling semi-private ``is_subtype`` |
| |
| ``astroid.helpers.is_subtype`` raises ``NonDeducibleTypeHierarchy`` when it cannot infer |
| the base classes of the given types, but that makes sense in its context given that |
| the method is mostly used to inform the inference process about the hierarchy of classes. |
| Doesn't make that much sense for ``pylint`` itself, which is why we're handling the |
| exception here, rather than in ``astroid`` |
| |
| Closes PyCQA/astroid#644 |
| |
| * Added a new command line option ``list-groups`` for listing all the check groups ``pylint`` knows about. |
| |
| * Allow ``BaseException`` for emitting ``broad-except``, just like ``Exception``. |
| |
| Closes #2741 |
| |
| * Fixed a crash that occurred for ``bad-str-strip-call`` when ``strip()`` received ``None`` |
| |
| Closes #2743 |
| |
| * Don't emit ``*-not-iterating`` checks for builtins consumed by ``itertools`` |
| |
| Closes #2731 |
| |
| * Fix a crash caused by iterating over ``Uninferable`` in a string formatting check. |
| |
| Closes #2727 |
| |
| * Fixed false positives for ``no-self-argument`` and ``unsubscriptable-object`` when using ``__class_getitem__`` (new in Python 3.7) |
| |
| Closes #2416 |
| |
| * Support ``Ellipsis`` as a synonym for ``pass`` statements. |
| |
| Closes #2718 |
| |
| * ``fixme`` gets triggered only on comments. |
| |
| Closes #2321 |
| |
| * Fixed a false positive for ``unused-variable`` and ``nonlocal`` assignments |
| |
| Closes #2671 |
| |
| * Added ``load_configuration()`` hook for plugins |
| |
| New optional hook for plugins is added: ``load_configuration()``. |
| This hook is executed after configuration is loaded to prevent |
| overwriting plugin specific configuration via user-based |
| configuration. |
| |
| Closes #2635 |
| |
| * Fix missing-raises-doc false positive (W9006) |
| |
| Closes #1502 |
| |
| * Exempt starred unpacking from ``*-not-iterating`` Python 3 checks |
| |
| Closes #2651 |
| |
| * Make ``compare-to-zero`` less zealous by checking against equality and identity |
| |
| Closes #2645 |
| |
| * Add ``no-else-raise`` warning (R1720) |
| |
| Closes #2558 |
| |
| * Exempt ``yield from`` from ``*-not-iterating`` Python 3 checks. |
| |
| Closes #2643 |
| |
| * Fix incorrect generation of ``no-else-return`` warnings (R1705) |
| |
| Fixed issue where ``if`` statements with nested ``if`` statements |
| were incorrectly being flagged as ``no-else-return`` in some cases and |
| not being flagged as ``no-else-return`` in other cases. Added tests |
| for verification and updated pylint source files to eliminate newly |
| exposed warnings. |
| |
| * Fix false positive with ``not-async-context-manager`` caused by not understanding ``contextlib.asynccontextmanager`` |
| |
| Closes #2440 |
| |
| * Refactor ``bad-reversed-sequence`` to account for more objects that can define ``__reversed__`` |
| |
| One such object would be an enum class, for which ``__reversed__`` yields each individual enum. |
| As such, the check for ``bad-reversed-sequence`` needs to not differentiate between classes |
| and instances when it comes for checking of ``__reversed__`` presence. |
| |
| Closes #2598 |
| |
| * Added ``wrong-exception-operation`` |
| |
| Used 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 |
| |
| * ``no-member`` is emitted for enums when they lack a member |
| |
| Previously we weren't doing this because we detected a |
| ``__getattr__`` implementation on the ``Enum`` class |
| (and this check is skipped for classes with ``__getattr__``), |
| but that is fine for Enums, given that they are inferred in a customised |
| way in astroid. |
| |
| Closes #2565 |
| |
| * Generalize ``chained-comparison`` |
| |
| Previous version incorrectly detects `a < b < c and b < d` and fails to |
| detect `a < b < c and c < d`. |
| |
| * Avoid popping __main__ when using multiple jobs |
| |
| Closes #2689 |
| |
| * Add a new option 'check-str-concat-over-line-jumps' to check 'implicit-str-concat-in-sequence' |
| |
| * Fixes for the new style logging format linter. |
| |
| The number of arguments was not handled properly, leading to an always |
| successful check. |
| |
| * Fix false positive ``not-callable`` for uninferable properties. |
| |
| * Fix false positive ``useless-else-on-loop`` if the break is deep in the else |
| of an inner loop. |
| |
| * Minor improvements to the help text for a few options. |