Skip to content

Releases: pylint-dev/pylint

pylint-2.7.4: Fix disabled warning not ignored (#4268)

30 Mar 07:30
c92e3ab
Compare
Choose a tag to compare
  • Fix a problem with disabled msgid not being ignored

    Closes #4265

  • Fix issue with annotated class constants

pylint-2.7.3

29 Mar 19:41
13dae7c
Compare
Choose a tag to compare
  • 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

    Closes #4086

  • Bump astroid version to 2.5.2

  • Fix false positive for method-hidden when using private attribute and method

    Closes #3936

  • 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

    Closes #4159

  • Fix issue with Enums and class-attribute-naming-style=snake_case

    Closes #4149

  • Add allowed-redefined-builtins option for fine tuning redefined-builtin check.

    Close #3263

  • Fix issue when executing with python -m pylint

    Closes #4161

  • Exempt typing.TypedDict from too-few-public-methods check.

    Closes #4180

  • Fix false-positive no-member for typed annotations without default value.

    Closes #3167

  • Add --class-const-naming-style for Enum constants and class variables annotated
    with typing.ClassVar

    Closes #4181

  • Fix astroid.Inference error for undefined-variables with ``len()```

    Closes #4215

  • Fix column index on FIXME warning messages

    Closes #4218

  • Improve handling of assignment expressions, better edge case handling

    Closes #3763, #4238

  • 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

    Closes #3202

  • Fix regression with plugins on PYTHONPATH if latter is cwd

    Closes #4252

pylint-2.7.2

28 Mar 19:36
Compare
Choose a tag to compare
  • Fix False Positive on Enum.__members__.items(), Enum.__members__.values, and Enum.__members__.keys
    Closes #4123

  • Properly strip dangerous sys.path entries (not just the first one)

    Closes #3636

pylint-2.7.1

28 Mar 19:35
Compare
Choose a tag to compare
  • Expose UnittestLinter in pylint.testutils

  • Don't check directories starting with '.' when using register_plugins

    Closes #4119

pylint-2.7.0

28 Mar 19:35
Compare
Choose a tag to compare
  • Introduce DeprecationMixin for reusable deprecation checks.

    Closes #4049

  • Fix false positive for builtin-not-iterating when map receives iterable

    Closes #4078

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

    Closes #4009

  • Only emit bad-reversed-sequence on dictionaries if below py3.8

    Closes #3940

  • Handle class decorators applied to function.

    Closes #3882

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

    Close #3834

  • Add missing checks for deprecated functions.

  • Postponed evaluation of annotations are now recognized by default if python version is above 3.10

    Closes #3992

  • Fix column metadata for anomalous backslash lints

  • Drop support for Python 3.5

  • Add support for pep585 with postponed evaluation

    Closes #3320

  • Check alternative union syntax - PEP 604

    Closes #4065

  • Fix multiple false positives with assignment expressions

    Closes #3347, #3953, #3865, #3275

  • Fix TypedDict inherit-non-class false-positive Python 3.9+

    Closes #1927

  • 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

    Close #3742

  • Fix false positive for not-async-context-manager when contextlib.asynccontextmanager is used

    Close #3862

  • Fix linter multiprocessing pool shutdown (triggered warnings when runned in parallels with other pytest plugins)

    Closes #3779

  • Fix a false-positive emission of no-self-use and unused-argument for methods
    of generic structural types (Protocol[T])

    Closes #3885

  • Fix bug that lead to duplicate messages when using --jobs 2 or more.

    Close #3584

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

    Close #3120

  • Fix vulnerable regular expressions in pyreverse

    Close #3811

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

    Closes #3468

  • Fix useless-super-delegation false positive when default keyword argument is a dictionnary.

    Close #3773

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

    Close #3800

  • Enforce docparams consistently when docstring is not present

    Close #2738

  • 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

    Close #3786

  • Fix AttributeError in checkers/refactoring.py

  • Improve sphinx directives spelling filter

  • Fix a bug with postponed evaluation when using aliases for annotations.

    Close #3798

  • 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

    Close #3737

  • Fix a crash in consider-using-enumerate when encountering range() without arguments

    Close #3735

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

    Close #1879

  • Fixes duplicate-errors not working with -j2+

    Close #3314

  • generated-members now matches the qualified name of members

    Close #2498

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

    Close #3407

  • Changed setup.py to work with distlib

    Close #3555

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

    Close #3165

  • Add Github Actions to replace Travis and AppVeyor in the future

pylint-2.6.2

28 Mar 19:39
Compare
Choose a tag to compare
  • Astroid version has been set as < 2.5

    Close #4093

pylint-2.6.0

28 Mar 19:40
8197144
Compare
Choose a tag to compare
  • Fix various scope-related bugs in undefined-variable checker

    Close #1082, #3434, #3461

  • bad-continuation and bad-whitespace have been removed, black or another formatter can help you with this better than Pylint

    Close #246, #289, #638, #747, #1148, #1179, #1943, #2041, #2301, #2304, #2944, #3565

  • The no-space-check option has been removed. It's no longer possible to consider empty line like a trailing-whitespace by using clever options

    Close #1368

  • missing-kwoa is no longer emitted when dealing with overload functions

    Close #3655

  • mixed-indentation has been removed, it is no longer useful since TabError is included directly in python3

    Close #2984 #3573

  • Add super-with-arguments check for flagging instances of Python 2 style super calls.

  • Add an faq detailing which messages to disable to avoid duplicates w/ other popular linters

  • Fix superfluous-parens false-positive for the walrus operator

    Close #3383

  • Fix fail-under not accepting floats

  • Fix a bug with ignore-docstrings ignoring all lines in a module

  • Fix pre-commit config that could lead to undetected duplicate lines of code

  • Fix a crash in parallel mode when the module's filepath is not set

    Close #3564

  • Add raise-missing-from check for exceptions that should have a cause.

  • Support both isort 4 and isort 5. If you have pinned isort 4 in your projet requirements, nothing changes. If you use isort 5, though, note that the known-standard-library option is not interpreted the same in isort 4 and isort 5 (see the migration guide in isort documentation for further details). For compatibility's sake for most pylint users, the known-standard-library option in pylint now maps to extra-standard-library in isort 5. If you really want what known-standard-library now means in isort 5, you must disable the wrong-import-order check in pylint and run isort manually with a proper isort configuration file.

    Close #3722

pylint-2.5.3

28 Mar 19:40
Compare
Choose a tag to compare
  • 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

pylint-2.5.2

28 Mar 19:40
Compare
Choose a tag to compare
  • pylint.Run accepts do_exit as a deprecated parameter

    Close #3590

pylint-2.5.1

28 Mar 19:41
Compare
Choose a tag to compare
  • Fix a crash in method-hidden lookup for unknown base classes

    Close #3527

  • Revert pylint.Run's exit parameter to do_exit

    This has been inadvertently changed several releases ago to do_exit.

    Close #3533

  • no-value-for-parameter variadic detection has improved for assign statements

    Close #3563

  • Allow package files to be properly discovered with multiple jobs

    Close #3524

  • Allow linting directories without __init__.py which was a regression in 2.5.

    Close #3528