mirror of
https://fuchsia.googlesource.com/third_party/github.com/pylint-dev/pylint
synced 2024-09-21 16:19:21 +00:00
8956979db8
This commit adds a new `notes-rgx` which is used by the "fixme" check for more granular control over the what fixme messages to emit. Co-authored-by: Claudiu Popa <pcmanticore@gmail.com>
87 lines
3.8 KiB
ReStructuredText
87 lines
3.8 KiB
ReStructuredText
**************************
|
||
What's New in Pylint 2.5
|
||
**************************
|
||
|
||
:Release: 2.5
|
||
:Date: TBC
|
||
|
||
|
||
Summary -- Release highlights
|
||
=============================
|
||
|
||
|
||
New checkers
|
||
============
|
||
|
||
* A new check ``assert-on-string-literal`` was added.
|
||
|
||
This check is emitted whenever **pylint** finds an assert statement
|
||
with a string literal as its first argument. Such assert statements
|
||
are probably unintended as they will always pass.
|
||
|
||
* A new check ``f-string-without-interpolation`` was added.
|
||
|
||
This check is emitted whenever **pylint** detects the use of an
|
||
f-string without having any interpolated values in it, which means
|
||
that the f-string can be a normal string.
|
||
|
||
* Multiple checks for invalid return types of protocol functions were added:
|
||
|
||
* ``invalid-bool-returned``: ``__bool__`` did not return a bool
|
||
* ``invalid-index-returned``: ``__index__`` did not return an integer
|
||
* ``invalid-repr-returned)``: ``__repr__`` did not return a string
|
||
* ``invalid-str-returned)``: ``__str__`` did not return a string
|
||
* ``invalid-bytes-returned)``: ``__bytes__`` did not return a string
|
||
* ``invalid-hash-returned)``: ``__hash__`` did not return an integer
|
||
* ``invalid-length-hint-returned)``: ``__length_hint__`` did not return a non-negative integer
|
||
* ``invalid-format-returned)``: ``__format__`` did not return a string
|
||
* ``invalid-getnewargs-returned)``: ``__getnewargs__`` did not return a tuple
|
||
* ``invalid-getnewargs-ex-returned)``: ``__getnewargs_ex__`` did not return a tuple of the form (tuple, dict)
|
||
|
||
* A new check ``inconsistent-quotes`` was added.
|
||
|
||
This check is emitted when quotes delimiters (" and ') are not used
|
||
consistently throughout a module. It makes allowances for avoiding
|
||
unnecessary escaping, allowing, for example, ``"Don't error"`` in a module in
|
||
which single-quotes otherwise delimit strings so that the single quote in
|
||
``Don't`` doesn't need to be escaped.
|
||
|
||
|
||
Other Changes
|
||
=============
|
||
|
||
* Don't emit ``line-too-long`` for multilines when a
|
||
`pylint:disable=line-too-long` comment stands at their end.
|
||
|
||
For example the following code will not trigger any ``line-too-long`` message::
|
||
|
||
def example():
|
||
"""
|
||
This is a very very very long line within a docstring that should trigger a pylint C0301 error line-too-long
|
||
|
||
Even spread on multiple lines, the disable command is still effective on very very very, maybe too much long docstring
|
||
"""#pylint: disable=line-too-long
|
||
pass
|
||
|
||
* Configuration can be read from a setup.cfg or pyproject.toml file
|
||
in the current directory.
|
||
A setup.cfg must prepend pylintrc section names with ``pylint.``,
|
||
for example ``[pylint.MESSAGES CONTROL]``.
|
||
A pyproject.toml file must prepend section names with ``tool.pylint.``,
|
||
for example ``[tool.pylint.'MESSAGES CONTROL']``.
|
||
These files can also be passed in on the command line.
|
||
|
||
* Add new good-names-rgx and bad-names-rgx to enable white-/blacklisting of regular expressions
|
||
|
||
To enable better handling of whitelisting/blacklisting names, we added two new config options: good-names-rgxs: a comma-
|
||
separated list of regexes, that if a name matches will be exempt of naming-checking. bad-names-rgxs: a comma-
|
||
separated list of regexes, that if a name matches will be always marked as a blacklisted name.
|
||
|
||
* Mutable ``collections.*`` are now flagged as dangerous defaults.
|
||
|
||
* Add new --fail-under flag for setting the threshold for the score to fail overall tests. If the score is over the fail-under threshold, pylint will complete SystemExit with value 0 to indicate no errors.
|
||
|
||
* Add a new check (non-str-assignment-to-dunder-name) to ensure that only strings are assigned to ``__name__`` attributes
|
||
|
||
* Add a new option ``notes-rgx`` to make fixme warnings more flexible. Now either ``notes`` or ``notes-rgx`` option can be used to detect fixme warnings.
|