# What's New in Pylint 2.7

Release

  2.7

Date

  2021-02-21

## Summary -- Release highlights

- Python 3.6+ is now required.

- No more duplicate messages when using multiple jobs.

- Handling of the new typing provided by mypy 0.8

- Reduced the number of false positives in general

- Reduced the occurrence of genuinely large recursion that went above system limit (See #3836, for a fix for pandas)

## New checkers

- Add `nan-comparison` check for comparison of NaN values

- Add support to `ignored-argument-names` in DocstringParameterChecker and adds `useless-param-doc` and `useless-type-doc` messages.

- Add `empty-comment` check for empty comments.

- 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.

- Add `consider-using-generator` check for the use of list comprehension inside `any` or `all` function.

## Other Changes

- Fix false positive for `builtin-not-iterating` when `zip` or `map` receives iterable

- Fix linter multiprocessing pool shutdown which triggered warnings when runned in parallels with other pytest plugins.

- Enums are now required to be named in UPPER_CASE by `invalid-name`.

- 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.

- `inconsistent-return-statements` message is now emitted if one of `try/except` statement is not returning explicitly while the other do.

- Fix false positive message `useless-super-delegation` when default keyword argument is a dictionary.

- Fix vulnerable regular expressions in `pyreverse`. The ambiguities of vulnerable regular expressions are removed, making the repaired regular expressions safer and faster matching.

- `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 positive for other classes, like pandas's DataFrame or numpy's Array.

- Fixes duplicate code detection for --jobs=2+

- New option `allowed-redefined-builtins` defines variable names allowed to shadow builtins.

- Improved protected access checks to allow access inside class methods