diff options
Diffstat (limited to 'doc')
113 files changed, 650 insertions, 476 deletions
diff --git a/doc/conf.py b/doc/conf.py index 76968ec36..0da6091cc 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -1,6 +1,6 @@ # Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html -# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE -# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt +# For details: https://github.com/pylint-dev/pylint/blob/main/LICENSE +# Copyright (c) https://github.com/pylint-dev/pylint/blob/main/CONTRIBUTORS.txt from __future__ import annotations @@ -109,7 +109,8 @@ master_doc = "index" # General information about the project. project = "Pylint" current_year = datetime.utcnow().year -copyright = f"2003-{current_year}, Logilab, PyCQA and contributors" # pylint: disable=redefined-builtin +contributors = "Logilab and Pylint contributors" +copyright = f"2003-{current_year}, {contributors}" # pylint: disable=redefined-builtin # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -249,7 +250,7 @@ latex_documents = [ "index", "Pylint.tex", "Pylint Documentation", - "Logilab, PyCQA and contributors", + contributors, "manual", ) ] @@ -282,9 +283,7 @@ latex_documents = [ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [ - ("index", "pylint", "Pylint Documentation", ["Logilab, PyCQA and contributors"], 1) -] +man_pages = [("index", "pylint", "Pylint Documentation", [contributors], 1)] # pylint: disable-next=consider-using-namedtuple-or-dataclass intersphinx_mapping = { @@ -297,7 +296,9 @@ intersphinx_mapping = { autosectionlabel_prefix_document = True # Permit duplicated titles in the resulting document. -# See https://github.com/PyCQA/pylint/issues/7362#issuecomment-1256932866 +# See https://github.com/pylint-dev/pylint/issues/7362#issuecomment-1256932866 autosectionlabel_maxdepth = 2 -linkcheck_ignore = ["https://github.com/PyCQA/pylint/blob/main/pylint/extensions/.*"] +linkcheck_ignore = [ + "https://github.com/pylint-dev/pylint/blob/main/pylint/extensions/.*" +] diff --git a/doc/contact.rst b/doc/contact.rst index 5c3920dfc..cd3594f39 100644 --- a/doc/contact.rst +++ b/doc/contact.rst @@ -9,12 +9,12 @@ You think you have found a bug in Pylint? Well, this may be the case since Pylint and Python are under heavy development! Please take the time to check if it is already in the issue tracker at -https://github.com/PyCQA/pylint +https://github.com/pylint-dev/pylint Note that the issue might also be reported in one of Pylint's major dependencies, astroid: -* https://github.com/PyCQA/astroid +* https://github.com/pylint-dev/astroid Discord server -------------- diff --git a/doc/data/messages/b/bad-file-encoding/bad.py b/doc/data/messages/b/bad-file-encoding/bad.py new file mode 100644 index 000000000..a4ab46ea3 --- /dev/null +++ b/doc/data/messages/b/bad-file-encoding/bad.py @@ -0,0 +1 @@ +# coding: latin_1 # [bad-file-encoding] diff --git a/doc/data/messages/b/bad-file-encoding/details.rst b/doc/data/messages/b/bad-file-encoding/details.rst deleted file mode 100644 index ab8204529..000000000 --- a/doc/data/messages/b/bad-file-encoding/details.rst +++ /dev/null @@ -1 +0,0 @@ -You can help us make the doc better `by contributing <https://github.com/PyCQA/pylint/issues/5953>`_ ! diff --git a/doc/data/messages/b/bad-file-encoding/good.py b/doc/data/messages/b/bad-file-encoding/good.py index c40beb573..e69de29bb 100644 --- a/doc/data/messages/b/bad-file-encoding/good.py +++ b/doc/data/messages/b/bad-file-encoding/good.py @@ -1 +0,0 @@ -# This is a placeholder for correct code for this message. diff --git a/doc/data/messages/b/bad-format-character/details.rst b/doc/data/messages/b/bad-format-character/details.rst index 25a2d3f5c..94733967b 100644 --- a/doc/data/messages/b/bad-format-character/details.rst +++ b/doc/data/messages/b/bad-format-character/details.rst @@ -1,2 +1,2 @@ This check is currently only active for "old-style" string formatting as seen in the examples. -See `Issue #6085 <https://github.com/PyCQA/pylint/issues/6085>`_ for more information. +See `Issue #6085 <https://github.com/pylint-dev/pylint/issues/6085>`_ for more information. diff --git a/doc/data/messages/b/bad-plugin-value/details.rst b/doc/data/messages/b/bad-plugin-value/details.rst index ab8204529..c1e9b976a 100644 --- a/doc/data/messages/b/bad-plugin-value/details.rst +++ b/doc/data/messages/b/bad-plugin-value/details.rst @@ -1 +1 @@ -You can help us make the doc better `by contributing <https://github.com/PyCQA/pylint/issues/5953>`_ ! +You can help us make the doc better `by contributing <https://github.com/pylint-dev/pylint/issues/5953>`_ ! diff --git a/doc/data/messages/b/bad-string-format-type/details.rst b/doc/data/messages/b/bad-string-format-type/details.rst index 65752275c..c60738410 100644 --- a/doc/data/messages/b/bad-string-format-type/details.rst +++ b/doc/data/messages/b/bad-string-format-type/details.rst @@ -1,2 +1,2 @@ This check is currently only active for "old-style" string formatting as seen in the examples. -See `Issue #6085 <https://github.com/PyCQA/pylint/issues/6163>`_ for more information. +See `Issue #6085 <https://github.com/pylint-dev/pylint/issues/6163>`_ for more information. diff --git a/doc/data/messages/c/c-extension-no-member/details.rst b/doc/data/messages/c/c-extension-no-member/details.rst index ab8204529..c1e9b976a 100644 --- a/doc/data/messages/c/c-extension-no-member/details.rst +++ b/doc/data/messages/c/c-extension-no-member/details.rst @@ -1 +1 @@ -You can help us make the doc better `by contributing <https://github.com/PyCQA/pylint/issues/5953>`_ ! +You can help us make the doc better `by contributing <https://github.com/pylint-dev/pylint/issues/5953>`_ ! diff --git a/doc/data/messages/c/consider-using-generator/related.rst b/doc/data/messages/c/consider-using-generator/related.rst index f380655fb..24727cf25 100644 --- a/doc/data/messages/c/consider-using-generator/related.rst +++ b/doc/data/messages/c/consider-using-generator/related.rst @@ -1,3 +1,3 @@ - `PEP 289 <https://peps.python.org/pep-0289/>`_ -- `Benchmark and discussion for any/all/list/tuple <https://github.com/PyCQA/pylint/pull/3309#discussion_r576683109>`_ -- `Benchmark and discussion for sum/max/min <https://github.com/PyCQA/pylint/pull/6595#issuecomment-1125704244>`_ +- `Benchmark and discussion for any/all/list/tuple <https://github.com/pylint-dev/pylint/pull/3309#discussion_r576683109>`_ +- `Benchmark and discussion for sum/max/min <https://github.com/pylint-dev/pylint/pull/6595#issuecomment-1125704244>`_ diff --git a/doc/data/messages/c/cyclic-import/details.rst b/doc/data/messages/c/cyclic-import/details.rst index ab8204529..c1e9b976a 100644 --- a/doc/data/messages/c/cyclic-import/details.rst +++ b/doc/data/messages/c/cyclic-import/details.rst @@ -1 +1 @@ -You can help us make the doc better `by contributing <https://github.com/PyCQA/pylint/issues/5953>`_ ! +You can help us make the doc better `by contributing <https://github.com/pylint-dev/pylint/issues/5953>`_ ! diff --git a/doc/data/messages/f/fixme/details.rst b/doc/data/messages/f/fixme/details.rst index 02869b537..732b4d88d 100644 --- a/doc/data/messages/f/fixme/details.rst +++ b/doc/data/messages/f/fixme/details.rst @@ -1,2 +1,2 @@ You can get use regular expressions and the ``notes-rgx`` option to create some constraints for this message. -See `the following issue <https://github.com/PyCQA/pylint/issues/2874>`_ for some examples. +See `the following issue <https://github.com/pylint-dev/pylint/issues/2874>`_ for some examples. diff --git a/doc/data/messages/i/invalid-character-carriage-return/details.rst b/doc/data/messages/i/invalid-character-carriage-return/details.rst index ab8204529..c1e9b976a 100644 --- a/doc/data/messages/i/invalid-character-carriage-return/details.rst +++ b/doc/data/messages/i/invalid-character-carriage-return/details.rst @@ -1 +1 @@ -You can help us make the doc better `by contributing <https://github.com/PyCQA/pylint/issues/5953>`_ ! +You can help us make the doc better `by contributing <https://github.com/pylint-dev/pylint/issues/5953>`_ ! diff --git a/doc/data/messages/i/invalid-character-nul/details.rst b/doc/data/messages/i/invalid-character-nul/details.rst index ab8204529..c1e9b976a 100644 --- a/doc/data/messages/i/invalid-character-nul/details.rst +++ b/doc/data/messages/i/invalid-character-nul/details.rst @@ -1 +1 @@ -You can help us make the doc better `by contributing <https://github.com/PyCQA/pylint/issues/5953>`_ ! +You can help us make the doc better `by contributing <https://github.com/pylint-dev/pylint/issues/5953>`_ ! diff --git a/doc/data/messages/i/invalid-unicode-codec/details.rst b/doc/data/messages/i/invalid-unicode-codec/details.rst index ab8204529..67001aca8 100644 --- a/doc/data/messages/i/invalid-unicode-codec/details.rst +++ b/doc/data/messages/i/invalid-unicode-codec/details.rst @@ -1 +1 @@ -You can help us make the doc better `by contributing <https://github.com/PyCQA/pylint/issues/5953>`_ ! +This message is a placeholder for a potential future issue with unicode codecs. diff --git a/doc/data/messages/i/invalid-unicode-codec/good.py b/doc/data/messages/i/invalid-unicode-codec/good.py deleted file mode 100644 index c40beb573..000000000 --- a/doc/data/messages/i/invalid-unicode-codec/good.py +++ /dev/null @@ -1 +0,0 @@ -# This is a placeholder for correct code for this message. diff --git a/doc/data/messages/l/line-too-long/details.rst b/doc/data/messages/l/line-too-long/details.rst index 7f774a661..3a3a03897 100644 --- a/doc/data/messages/l/line-too-long/details.rst +++ b/doc/data/messages/l/line-too-long/details.rst @@ -2,4 +2,4 @@ Pragma controls such as ``# pylint: disable=all`` are not counted toward line le If you attempt to disable this message via ``# pylint: disable=line-too-long`` in a module with no code, you may receive a message for ``useless-suppression``. This is a false positive of ``useless-suppression`` we can't easily fix. -See https://github.com/PyCQA/pylint/issues/3368 for more information. +See https://github.com/pylint-dev/pylint/issues/3368 for more information. diff --git a/doc/data/messages/m/mixed-line-endings/details.rst b/doc/data/messages/m/mixed-line-endings/details.rst index ab8204529..c1e9b976a 100644 --- a/doc/data/messages/m/mixed-line-endings/details.rst +++ b/doc/data/messages/m/mixed-line-endings/details.rst @@ -1 +1 @@ -You can help us make the doc better `by contributing <https://github.com/PyCQA/pylint/issues/5953>`_ ! +You can help us make the doc better `by contributing <https://github.com/pylint-dev/pylint/issues/5953>`_ ! diff --git a/doc/data/messages/r/raw-checker-failed/details.rst b/doc/data/messages/r/raw-checker-failed/details.rst index ab8204529..c1e9b976a 100644 --- a/doc/data/messages/r/raw-checker-failed/details.rst +++ b/doc/data/messages/r/raw-checker-failed/details.rst @@ -1 +1 @@ -You can help us make the doc better `by contributing <https://github.com/PyCQA/pylint/issues/5953>`_ ! +You can help us make the doc better `by contributing <https://github.com/pylint-dev/pylint/issues/5953>`_ ! diff --git a/doc/data/messages/r/relative-beyond-top-level/details.rst b/doc/data/messages/r/relative-beyond-top-level/details.rst index ab8204529..c1e9b976a 100644 --- a/doc/data/messages/r/relative-beyond-top-level/details.rst +++ b/doc/data/messages/r/relative-beyond-top-level/details.rst @@ -1 +1 @@ -You can help us make the doc better `by contributing <https://github.com/PyCQA/pylint/issues/5953>`_ ! +You can help us make the doc better `by contributing <https://github.com/pylint-dev/pylint/issues/5953>`_ ! diff --git a/doc/data/messages/r/return-arg-in-generator/details.rst b/doc/data/messages/r/return-arg-in-generator/details.rst deleted file mode 100644 index ab8204529..000000000 --- a/doc/data/messages/r/return-arg-in-generator/details.rst +++ /dev/null @@ -1 +0,0 @@ -You can help us make the doc better `by contributing <https://github.com/PyCQA/pylint/issues/5953>`_ ! diff --git a/doc/data/messages/r/return-arg-in-generator/good.py b/doc/data/messages/r/return-arg-in-generator/good.py index c40beb573..72dc95e7b 100644 --- a/doc/data/messages/r/return-arg-in-generator/good.py +++ b/doc/data/messages/r/return-arg-in-generator/good.py @@ -1 +1,4 @@ -# This is a placeholder for correct code for this message. +def yield_numbers(): + for number in range(10): + yield number + return "I am now allowed!" # This was not allowed in Python 3.3 and earlier. diff --git a/doc/data/messages/u/unrecognized-option/details.rst b/doc/data/messages/u/unrecognized-option/details.rst index ab8204529..c1e9b976a 100644 --- a/doc/data/messages/u/unrecognized-option/details.rst +++ b/doc/data/messages/u/unrecognized-option/details.rst @@ -1 +1 @@ -You can help us make the doc better `by contributing <https://github.com/PyCQA/pylint/issues/5953>`_ ! +You can help us make the doc better `by contributing <https://github.com/pylint-dev/pylint/issues/5953>`_ ! diff --git a/doc/data/messages/u/use-a-generator/related.rst b/doc/data/messages/u/use-a-generator/related.rst index 5d4660bec..1ec9e139e 100644 --- a/doc/data/messages/u/use-a-generator/related.rst +++ b/doc/data/messages/u/use-a-generator/related.rst @@ -1,2 +1,2 @@ - `PEP 289 – Generator Expressions <https://peps.python.org/pep-0289/>`_ -- `Benchmark and discussion during initial implementation <https://github.com/PyCQA/pylint/pull/3309#discussion_r576683109>`_ +- `Benchmark and discussion during initial implementation <https://github.com/pylint-dev/pylint/pull/3309#discussion_r576683109>`_ diff --git a/doc/data/messages/u/useless-option-value/bad.py b/doc/data/messages/u/useless-option-value/bad.py index 291528732..e284b3fea 100644 --- a/doc/data/messages/u/useless-option-value/bad.py +++ b/doc/data/messages/u/useless-option-value/bad.py @@ -1,3 +1,3 @@ -"""'bad-continuation' was removed from pylint in https://github.com/PyCQA/pylint/pull/3571""" +"""'bad-continuation' was removed from pylint in https://github.com/pylint-dev/pylint/pull/3571""" # pylint: disable=bad-continuation # [useless-option-value] diff --git a/doc/data/messages/u/useless-option-value/good.py b/doc/data/messages/u/useless-option-value/good.py index eb6b246c6..619b5b6f6 100644 --- a/doc/data/messages/u/useless-option-value/good.py +++ b/doc/data/messages/u/useless-option-value/good.py @@ -1 +1 @@ -"""'bad-continuation' was removed from pylint in https://github.com/PyCQA/pylint/pull/3571""" +"""'bad-continuation' was removed from pylint in https://github.com/pylint-dev/pylint/pull/3571""" diff --git a/doc/data/ruff.toml b/doc/data/ruff.toml index da929be3b..773f7a313 100644 --- a/doc/data/ruff.toml +++ b/doc/data/ruff.toml @@ -2,4 +2,12 @@ ignore = [] # Reading ease is drastically reduced on read the doc after 103 chars # (Because of horizontal scrolling) line-length = 103 -select = ["E501"] +select = ["E501", "I"] + + +[per-file-ignores] +"doc/data/messages/r/reimported/bad.py" = ["I"] +"doc/data/messages/w/wrong-import-order/bad.py" = ["I"] +"doc/data/messages/u/ungrouped-imports/bad.py" = ["I"] +"doc/data/messages/m/misplaced-future/bad.py" = ["I"] +"doc/data/messages/m/multiple-imports/bad.py" = ["I"] diff --git a/doc/development_guide/api/epylint.rst b/doc/development_guide/api/epylint.rst deleted file mode 100644 index 8359587ed..000000000 --- a/doc/development_guide/api/epylint.rst +++ /dev/null @@ -1,22 +0,0 @@ -======= -epylint -======= - -To silently run epylint on a ``module_name.py`` module, and get its standard output and error: - -.. sourcecode:: python - - from pylint import epylint as lint - - (pylint_stdout, pylint_stderr) = lint.py_run('module_name.py', return_std=True) - -It is also possible to include additional Pylint options in the first argument to ``py_run``: - -.. sourcecode:: python - - from pylint import epylint as lint - - (pylint_stdout, pylint_stderr) = lint.py_run('module_name.py --disable C0114', return_std=True) - -The options ``--msg-template="{path}:{line}: {category} ({msg_id}, {symbol}, {obj}) {msg}"`` and -``--reports=n`` are set implicitly inside the ``epylint`` module. diff --git a/doc/development_guide/api/index.rst b/doc/development_guide/api/index.rst index 00e6e1a9f..ac4e96900 100644 --- a/doc/development_guide/api/index.rst +++ b/doc/development_guide/api/index.rst @@ -2,7 +2,7 @@ API ### -You can call ``Pylint``, ``epylint``, ``symilar`` and ``pyreverse`` from another +You can call ``Pylint``, ``symilar`` and ``pyreverse`` from another Python program thanks to their APIs: .. sourcecode:: python @@ -19,4 +19,3 @@ Python program thanks to their APIs: :hidden: pylint - epylint diff --git a/doc/development_guide/contributor_guide/contribute.rst b/doc/development_guide/contributor_guide/contribute.rst index 2ebc895b0..dee22aa69 100644 --- a/doc/development_guide/contributor_guide/contribute.rst +++ b/doc/development_guide/contributor_guide/contribute.rst @@ -24,18 +24,18 @@ Here's a list of links you can check depending on what you want to do: - `Reviewing pull requests`_ .. _`Asking a question on discord`: https://discord.com/invite/qYxpadCgkx -.. _`on github`: https://github.com/PyCQA/pylint/issues/new/choose -.. _`Opening an issue`: https://github.com/PyCQA/pylint/issues/new?assignees=&labels=Needs+triage+%3Ainbox_tray%3A&template=BUG-REPORT.yml -.. _`Making the documentation better`: https://github.com/PyCQA/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Documentation+%3Agreen_book%3A%22 -.. _`Making the error message better`: https://github.com/PyCQA/pylint/issues?q=is%3Aopen+is%3Aissue+project%3Apycqa%2Fpylint%2F4+ -.. _`Reproducing bugs and confirming that issues are valid`: https://github.com/PyCQA/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Needs+reproduction+%3Amag%3A%22%2C%22Cannot+reproduce+%F0%9F%A4%B7%22 -.. _`Investigating or debugging complicated issues`: https://github.com/PyCQA/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Needs+investigation+%F0%9F%94%AC%22 -.. _`Designing or specifying a solution`: https://github.com/PyCQA/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Needs+design+proposal+%3Alock%3A%22%2C%22Needs+specification+%3Aclosed_lock_with_key%3A%22 -.. _`Giving your opinion on ongoing discussion`: https://github.com/PyCQA/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Needs+decision+%3Alock%3A%22 -.. _`Fixing bugs and crashes`: https://github.com/PyCQA/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Bug+%3Abeetle%3A%22%2C%22Crash+%F0%9F%92%A5%22 -.. _`Fixing false positives`: https://github.com/PyCQA/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22False+Positive+%F0%9F%A6%9F%22 -.. _`Creating new features or fixing false negatives`: https://github.com/PyCQA/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22False+Negative+%F0%9F%A6%8B%22%2C%22Enhancement+%E2%9C%A8%22 -.. _`Reviewing pull requests`: https://github.com/PyCQA/pylint/pulls?q=is%3Aopen+is%3Apr+label%3A%22Needs+review+%F0%9F%94%8D%22 +.. _`on github`: https://github.com/pylint-dev/pylint/issues/new/choose +.. _`Opening an issue`: https://github.com/pylint-dev/pylint/issues/new?assignees=&labels=Needs+triage+%3Ainbox_tray%3A&template=BUG-REPORT.yml +.. _`Making the documentation better`: https://github.com/pylint-dev/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Documentation+%3Agreen_book%3A%22 +.. _`Making the error message better`: https://github.com/pylint-dev/pylint/issues?q=is%3Aopen%20is%3Aissue%20project%3Apylint-dev%2Fpylint%2F4 +.. _`Reproducing bugs and confirming that issues are valid`: https://github.com/pylint-dev/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Needs+reproduction+%3Amag%3A%22%2C%22Cannot+reproduce+%F0%9F%A4%B7%22 +.. _`Investigating or debugging complicated issues`: https://github.com/pylint-dev/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Needs+investigation+%F0%9F%94%AC%22 +.. _`Designing or specifying a solution`: https://github.com/pylint-dev/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Needs+design+proposal+%3Alock%3A%22%2C%22Needs+specification+%3Aclosed_lock_with_key%3A%22 +.. _`Giving your opinion on ongoing discussion`: https://github.com/pylint-dev/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Needs+decision+%3Alock%3A%22 +.. _`Fixing bugs and crashes`: https://github.com/pylint-dev/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Bug+%3Abeetle%3A%22%2C%22Crash+%F0%9F%92%A5%22 +.. _`Fixing false positives`: https://github.com/pylint-dev/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22False+Positive+%F0%9F%A6%9F%22 +.. _`Creating new features or fixing false negatives`: https://github.com/pylint-dev/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22False+Negative+%F0%9F%A6%8B%22%2C%22Enhancement+%E2%9C%A8%22 +.. _`Reviewing pull requests`: https://github.com/pylint-dev/pylint/pulls?q=is%3Aopen+is%3Apr+label%3A%22Needs+review+%F0%9F%94%8D%22 If you are a pylint maintainer there's also: @@ -45,10 +45,10 @@ If you are a pylint maintainer there's also: - `Preparing the next patch release`_ - `Checking stale pull requests status`_ -.. _`Triaging issues`: https://github.com/PyCQA/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Needs+triage+%3Ainbox_tray%3A%22 -.. _`Labeling issues that do not have an actionable label yet`: https://github.com/PyCQA/pylint/issues?q=is%3Aopen+is%3Aissue+-label%3A%22Needs+astroid+Brain+%F0%9F%A7%A0%22+-label%3A%22Needs+astroid+update%22+-label%3A%22Needs+backport%22+-label%3A%22Needs+decision+%3Alock%3A%22+-label%3A%22Needs+investigation+%F0%9F%94%AC%22+-label%3A%22Needs+PR%22+-label%3A%22Needs+reproduction+%3Amag%3A%22+-label%3A%22Needs+review+%F0%9F%94%8D%22+-label%3A%22Needs+triage+%3Ainbox_tray%3A%22+-label%3A%22Waiting+on+author%22+-label%3A%22Work+in+progress%22+-label%3AMaintenance+sort%3Aupdated-desc+-label%3A%22Needs+specification+%3Aclosed_lock_with_key%3A%22+-label%3A%22Needs+design+proposal+%3Alock%3A%22 -.. _`Preparing the next patch release`: https://github.com/PyCQA/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Needs+backport%22 -.. _`Checking stale pull requests status`: https://github.com/PyCQA/pylint/pulls?q=is%3Aopen+is%3Apr+label%3A%22Work+in+progress%22%2C%22Needs+astroid+update%22%2C%22Waiting+on+author%22 +.. _`Triaging issues`: https://github.com/pylint-dev/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Needs+triage+%3Ainbox_tray%3A%22 +.. _`Labeling issues that do not have an actionable label yet`: https://github.com/pylint-dev/pylint/issues?q=is%3Aopen+is%3Aissue+-label%3A%22Needs+astroid+Brain+%F0%9F%A7%A0%22+-label%3A%22Needs+astroid+update%22+-label%3A%22Needs+backport%22+-label%3A%22Needs+decision+%3Alock%3A%22+-label%3A%22Needs+investigation+%F0%9F%94%AC%22+-label%3A%22Needs+PR%22+-label%3A%22Needs+reproduction+%3Amag%3A%22+-label%3A%22Needs+review+%F0%9F%94%8D%22+-label%3A%22Needs+triage+%3Ainbox_tray%3A%22+-label%3A%22Waiting+on+author%22+-label%3A%22Work+in+progress%22+-label%3AMaintenance+sort%3Aupdated-desc+-label%3A%22Needs+specification+%3Aclosed_lock_with_key%3A%22+-label%3A%22Needs+design+proposal+%3Alock%3A%22 +.. _`Preparing the next patch release`: https://github.com/pylint-dev/pylint/issues?q=is%3Aopen+is%3Aissue+label%3A%22Needs+backport%22 +.. _`Checking stale pull requests status`: https://github.com/pylint-dev/pylint/pulls?q=is%3Aopen+is%3Apr+label%3A%22Work+in+progress%22%2C%22Needs+astroid+update%22%2C%22Waiting+on+author%22 Creating a pull request @@ -100,7 +100,7 @@ your patch gets accepted: .. _pytest: https://docs.pytest.org/en/latest/ .. _black: https://github.com/psf/black .. _isort: https://github.com/PyCQA/isort -.. _astroid: https://github.com/pycqa/astroid +.. _astroid: https://github.com/pylint-dev/astroid Tips for Getting Started with Pylint Development diff --git a/doc/development_guide/contributor_guide/release.md b/doc/development_guide/contributor_guide/release.md index a076838fd..e1635345b 100644 --- a/doc/development_guide/contributor_guide/release.md +++ b/doc/development_guide/contributor_guide/release.md @@ -39,8 +39,16 @@ branch - Push the tag. - Release the version on GitHub with the same name as the tag and copy and paste the appropriate changelog in the description. This triggers the PyPI release. -- Delete the `maintenance/X.Y-1.x` branch. (For example: `maintenance/2.3.x`) - Create a `maintenance/X.Y.x` (For example: `maintenance/2.4.x` from the `v2.4.0` tag.) +- Upgrade the pattern for the protected branches in the settings under `Branches` / + `Branch protection rules`. (For example: `maintenance/2.4*` instead of + `maintenance/2.3*`.). There's a lot of configuration done in these settings, do NOT + recreate it from scratch. +- Delete the `maintenance/X.Y-1.x` branch. (For example: `maintenance/2.3.x`) +- Select all the issues labelled `backport maintenance/X.Y-1.x` and label them + `backported`, then rename the `backport maintenance/X.Y-1.x` label to + `backport maintenance/X.Y.x` (for example rename `backport maintenance/2.3.x` to + `backport maintenance/2.4.x`) - Close the current milestone and create the new ones (For example: close `2.4.0`, create `2.4.1` and `2.6.0`) - Hide and deactivate all the patch releases for the previous minor release on diff --git a/doc/development_guide/contributor_guide/tests/install.rst b/doc/development_guide/contributor_guide/tests/install.rst index c150d0b91..24783ea2c 100644 --- a/doc/development_guide/contributor_guide/tests/install.rst +++ b/doc/development_guide/contributor_guide/tests/install.rst @@ -10,7 +10,7 @@ Pylint is developed using the git_ distributed version control system. You can clone Pylint using :: - git clone https://github.com/PyCQA/pylint + git clone https://github.com/pylint-dev/pylint Before you start testing your code, you need to install your source-code package locally. Suppose you just cloned pylint with the previous ``git clone`` command. To set up your @@ -34,7 +34,7 @@ If you're testing new changes in astroid you need to also clone astroid_ and ins with an editable installation alongside pylint as follows:: # Suppose you're in the pylint directory - git clone https://github.com/PyCQA/astroid.git + git clone https://github.com/pylint-dev/astroid.git python3 -m pip install -e astroid/ You're now using the local astroid in pylint and can control the version with git for example:: @@ -43,5 +43,5 @@ You're now using the local astroid in pylint and can control the version with gi git switch my-astroid-dev-branch .. _pytest-cov: https://pypi.org/project/pytest-cov/ -.. _astroid: https://github.com/pycqa/astroid +.. _astroid: https://github.com/pylint-dev/astroid .. _git: https://git-scm.com/ diff --git a/doc/development_guide/contributor_guide/tests/launching_test.rst b/doc/development_guide/contributor_guide/tests/launching_test.rst index 02114f01f..64d4421a7 100644 --- a/doc/development_guide/contributor_guide/tests/launching_test.rst +++ b/doc/development_guide/contributor_guide/tests/launching_test.rst @@ -85,4 +85,4 @@ You can find the latest list of repositories and any relevant code for these tes directory. .. _pytest-cov: https://pypi.org/project/pytest-cov/ -.. _astroid: https://github.com/pycqa/astroid +.. _astroid: https://github.com/pylint-dev/astroid diff --git a/doc/development_guide/contributor_guide/tests/writing_test.rst b/doc/development_guide/contributor_guide/tests/writing_test.rst index c616d172b..9ce9ca1f0 100644 --- a/doc/development_guide/contributor_guide/tests/writing_test.rst +++ b/doc/development_guide/contributor_guide/tests/writing_test.rst @@ -137,4 +137,4 @@ module name should be ``{abspath}`` and the file name ``{relpath}``. .. _tox: https://tox.wiki/en/latest/ .. _pytest: https://docs.pytest.org/en/latest/ .. _pytest-cov: https://pypi.org/project/pytest-cov/ -.. _astroid: https://github.com/pycqa/astroid +.. _astroid: https://github.com/pylint-dev/astroid diff --git a/doc/development_guide/how_tos/custom_checkers.rst b/doc/development_guide/how_tos/custom_checkers.rst index c7b1b64f8..6ab9a9e35 100644 --- a/doc/development_guide/how_tos/custom_checkers.rst +++ b/doc/development_guide/how_tos/custom_checkers.rst @@ -3,11 +3,11 @@ How to Write a Checker ====================== You can find some simple examples in the distribution -(`custom.py <https://github.com/PyCQA/pylint/blob/main/examples/custom.py>`_ +(`custom.py <https://github.com/pylint-dev/pylint/blob/main/examples/custom.py>`_ , -`custom_raw.py <https://github.com/PyCQA/pylint/blob/main/examples/custom_raw.py>`_ +`custom_raw.py <https://github.com/pylint-dev/pylint/blob/main/examples/custom_raw.py>`_ and -`deprecation_checker.py <https://github.com/PyCQA/pylint/blob/main/examples/deprecation_checker.py>`_). +`deprecation_checker.py <https://github.com/pylint-dev/pylint/blob/main/examples/deprecation_checker.py>`_). .. TODO Create custom_token.py diff --git a/doc/development_guide/how_tos/transform_plugins.rst b/doc/development_guide/how_tos/transform_plugins.rst index 031faa0f1..e1f7e9e64 100644 --- a/doc/development_guide/how_tos/transform_plugins.rst +++ b/doc/development_guide/how_tos/transform_plugins.rst @@ -114,4 +114,4 @@ an example, any code transformation can be done by plugins. See `astroid/brain`_ for real life examples of transform plugins. .. _`warnings.py`: https://hg.python.org/cpython/file/2.7/Lib/warnings.py -.. _`astroid/brain`: https://github.com/PyCQA/astroid/tree/main/astroid/brain +.. _`astroid/brain`: https://github.com/pylint-dev/astroid/tree/main/astroid/brain diff --git a/doc/exts/pylint_extensions.py b/doc/exts/pylint_extensions.py index 406d2d39d..936bdbb6b 100755 --- a/doc/exts/pylint_extensions.py +++ b/doc/exts/pylint_extensions.py @@ -1,8 +1,8 @@ #!/usr/bin/env python # Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html -# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE -# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt +# For details: https://github.com/pylint-dev/pylint/blob/main/LICENSE +# Copyright (c) https://github.com/pylint-dev/pylint/blob/main/CONTRIBUTORS.txt """Script used to generate the extensions file before building the actual documentation.""" @@ -11,7 +11,6 @@ from __future__ import annotations import os import re import sys -import warnings from typing import Any import sphinx @@ -134,24 +133,20 @@ def get_plugins_info( doc = f.read() try: by_checker[checker]["checker"] = checker - with warnings.catch_warnings(): - warnings.filterwarnings("ignore", category=DeprecationWarning) - by_checker[checker]["options"] += checker.options_and_values() + by_checker[checker]["options"] += checker._options_and_values() by_checker[checker]["msgs"].update(checker.msgs) by_checker[checker]["reports"] += checker.reports by_checker[checker]["doc"] += doc by_checker[checker]["module"] += module except KeyError: - with warnings.catch_warnings(): - warnings.filterwarnings("ignore", category=DeprecationWarning) - by_checker[checker] = _CheckerInfo( - checker=checker, - options=list(checker.options_and_values()), - msgs=dict(checker.msgs), - reports=list(checker.reports), - doc=doc, - module=module, - ) + by_checker[checker] = _CheckerInfo( + checker=checker, + options=list(checker._options_and_values()), + msgs=dict(checker.msgs), + reports=list(checker.reports), + doc=doc, + module=module, + ) return by_checker diff --git a/doc/exts/pylint_features.py b/doc/exts/pylint_features.py index fcf4f01c8..4a8575151 100755 --- a/doc/exts/pylint_features.py +++ b/doc/exts/pylint_features.py @@ -1,8 +1,8 @@ #!/usr/bin/env python # Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html -# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE -# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt +# For details: https://github.com/pylint-dev/pylint/blob/main/LICENSE +# Copyright (c) https://github.com/pylint-dev/pylint/blob/main/CONTRIBUTORS.txt """Script used to generate the features file before building the actual documentation. diff --git a/doc/exts/pylint_messages.py b/doc/exts/pylint_messages.py index b16f7b026..81a9bc542 100644 --- a/doc/exts/pylint_messages.py +++ b/doc/exts/pylint_messages.py @@ -1,6 +1,6 @@ # Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html -# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE -# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt +# For details: https://github.com/pylint-dev/pylint/blob/main/LICENSE +# Copyright (c) https://github.com/pylint-dev/pylint/blob/main/CONTRIBUTORS.txt """Script used to generate the messages files.""" @@ -336,7 +336,7 @@ def _generate_checker_url(message: MessageData) -> str: checker_module_rel_path = os.path.relpath( message.checker_module_path, PYLINT_BASE_PATH ) - return f"https://github.com/PyCQA/pylint/blob/main/{checker_module_rel_path}" + return f"https://github.com/pylint-dev/pylint/blob/main/{checker_module_rel_path}" def _write_single_shared_message_page( diff --git a/doc/exts/pylint_options.py b/doc/exts/pylint_options.py index f402125a7..64a7eda9c 100644 --- a/doc/exts/pylint_options.py +++ b/doc/exts/pylint_options.py @@ -1,6 +1,6 @@ # Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html -# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE -# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt +# For details: https://github.com/pylint-dev/pylint/blob/main/LICENSE +# Copyright (c) https://github.com/pylint-dev/pylint/blob/main/CONTRIBUTORS.txt """Script used to generate the options page.""" diff --git a/doc/pyreverse.rst b/doc/pyreverse.rst index fecbbaf5a..7595683d7 100644 --- a/doc/pyreverse.rst +++ b/doc/pyreverse.rst @@ -5,7 +5,7 @@ Pyreverse ``pyreverse`` analyzes your source code and generates package and class diagrams. -It supports output to ``.dot``/``.gv``, ``.vcg``, ``.puml``/``.plantuml`` (PlantUML) and ``.mmd``/``.html`` (MermaidJS) file formats. +It supports output to ``.dot``/``.gv``, ``.puml``/``.plantuml`` (PlantUML) and ``.mmd``/``.html`` (MermaidJS) file formats. If Graphviz (or the ``dot`` command) is installed, all `output formats supported by Graphviz <https://graphviz.org/docs/outputs/>`_ can be used as well. In this case, ``pyreverse`` first generates a temporary ``.gv`` file, which is then fed to Graphviz to generate the final image. diff --git a/doc/requirements.txt b/doc/requirements.txt index 1a9e621b6..62b6b6b0f 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,6 +1,6 @@ -Sphinx==6.1.3 +Sphinx==6.2.0 sphinx-reredirects<1 -myst-parser~=0.19 +myst-parser~=1.0 towncrier~=22.12 -furo==2022.12.7 +furo==2023.3.27 -e . diff --git a/doc/symilar.rst b/doc/symilar.rst index 5b75ff38f..fd7124e1d 100644 --- a/doc/symilar.rst +++ b/doc/symilar.rst @@ -20,7 +20,6 @@ All files that shall be checked have to be passed in explicitly, e.g.:: ==tests/data/suppliermodule_test.py:12 class Ancestor: """ Ancestor method """ - __implements__ = (Interface,) cls_member = DoNothing() def __init__(self, value): diff --git a/doc/test_messages_documentation.py b/doc/test_messages_documentation.py index 80e44c4a2..058dcbe49 100644 --- a/doc/test_messages_documentation.py +++ b/doc/test_messages_documentation.py @@ -1,6 +1,6 @@ # Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html -# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE -# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt +# For details: https://github.com/pylint-dev/pylint/blob/main/LICENSE +# Copyright (c) https://github.com/pylint-dev/pylint/blob/main/CONTRIBUTORS.txt """Functional tests for the code examples in the messages' documentation.""" diff --git a/doc/user_guide/checkers/features.rst b/doc/user_guide/checkers/features.rst index 9a7c8a4ff..a6b08381a 100644 --- a/doc/user_guide/checkers/features.rst +++ b/doc/user_guide/checkers/features.rst @@ -916,9 +916,9 @@ Refactoring checker Messages comparison inside a condition to determine if a sequence is empty. Instead of coercing the length to a boolean, either rely on the fact that empty sequences are false or compare the length against a scalar. -:consider-using-f-string (C0209): *Formatting a regular string which could be a f-string* +:consider-using-f-string (C0209): *Formatting a regular string which could be an f-string* Used when we detect a string that is being formatted with format() or % which - could potentially be a f-string. The use of f-strings is preferred. Requires + could potentially be an f-string. The use of f-strings is preferred. Requires Python 3.6 and ``py-version >= 3.6``. :use-maxsplit-arg (C0207): *Use %s instead* Emitted when accessing only the first or last element of str.split(). The @@ -1308,7 +1308,7 @@ Unsupported Version checker Messages ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :using-f-string-in-unsupported-version (W2601): *F-strings are not supported by all versions included in the py-version setting* Used when the py-version set by the user is lower than 3.6 and pylint - encounters a f-string. + encounters an f-string. :using-final-decorator-in-unsupported-version (W2602): *typing.final is not supported by all versions included in the py-version setting* Used when the py-version set by the user is lower than 3.8 and pylint encounters a ``typing.final`` decorator. diff --git a/doc/user_guide/installation/badge.rst b/doc/user_guide/installation/badge.rst index 8463d40b3..3c5df9e82 100644 --- a/doc/user_guide/installation/badge.rst +++ b/doc/user_guide/installation/badge.rst @@ -7,16 +7,16 @@ Show your usage You can place this badge in your README to let others know your project uses pylint. .. image:: https://img.shields.io/badge/linting-pylint-yellowgreen - :target: https://github.com/PyCQA/pylint + :target: https://github.com/pylint-dev/pylint Use the badge in your project's README.md (or any other Markdown file):: - [![linting: pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/PyCQA/pylint) + [![linting: pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/pylint-dev/pylint) Use the badge in your project's README.rst (or any other rst file):: .. image:: https://img.shields.io/badge/linting-pylint-yellowgreen - :target: https://github.com/PyCQA/pylint + :target: https://github.com/pylint-dev/pylint If you use GitHub Actions, and one of your CI workflows begins with "name: pylint", you diff --git a/doc/user_guide/installation/ide_integration/flymake-emacs.rst b/doc/user_guide/installation/ide_integration/flymake-emacs.rst index 79310ff59..64aad8a66 100644 --- a/doc/user_guide/installation/ide_integration/flymake-emacs.rst +++ b/doc/user_guide/installation/ide_integration/flymake-emacs.rst @@ -4,75 +4,6 @@ Using Pylint through Flymake in Emacs ===================================== .. warning:: - The Emacs package now has its own repository and is looking for a maintainer. - If you're reading this doc and are interested in maintaining this package or - are actually using flymake please open an issue at - https://github.com/emacsorphanage/pylint/issues/new/choose - -To enable Flymake for Python, insert the following into your .emacs: - -.. sourcecode:: common-lisp - - ;; Configure Flymake for Python - (when (load "flymake" t) - (defun flymake-pylint-init () - (let* ((temp-file (flymake-init-create-temp-buffer-copy - 'flymake-create-temp-inplace)) - (local-file (file-relative-name - temp-file - (file-name-directory buffer-file-name)))) - (list "epylint" (list local-file)))) - (add-to-list 'flymake-allowed-file-name-masks - '("\\.py\\'" flymake-pylint-init))) - - ;; Set as a minor mode for Python - (add-hook 'python-mode-hook '(lambda () (flymake-mode))) - -Above stuff is in ``pylint/elisp/pylint-flymake.el``, which should be automatically -installed on Debian systems, in which cases you don't have to put it in your ``.emacs`` file. - -Other things you may find useful to set: - -.. sourcecode:: common-lisp - - ;; Configure to wait a bit longer after edits before starting - (setq-default flymake-no-changes-timeout '3) - - ;; Keymaps to navigate to the errors - (add-hook 'python-mode-hook '(lambda () (define-key python-mode-map "\C-cn" 'flymake-goto-next-error))) - (add-hook 'python-mode-hook '(lambda () (define-key python-mode-map "\C-cp" 'flymake-goto-prev-error))) - - -Finally, by default Flymake only displays the extra information about the error when you -hover the mouse over the highlighted line. The following will use the minibuffer to display -messages when you the cursor is on the line. - -.. sourcecode:: common-lisp - - ;; To avoid having to mouse hover for the error message, these functions make Flymake error messages - ;; appear in the minibuffer - (defun show-fly-err-at-point () - "If the cursor is sitting on a Flymake error, display the message in the minibuffer" - (require 'cl) - (interactive) - (let ((line-no (line-number-at-pos))) - (dolist (elem flymake-err-info) - (if (eq (car elem) line-no) - (let ((err (car (second elem)))) - (message "%s" (flymake-ler-text err))))))) - - (add-hook 'post-command-hook 'show-fly-err-at-point) - - -Alternative, if you only wish to pollute the minibuffer after an explicit flymake-goto-* then use -the following instead of a post-command-hook - -.. sourcecode:: common-lisp - - (defadvice flymake-goto-next-error (after display-message activate compile) - "Display the error in the mini-buffer rather than having to mouse over it" - (show-fly-err-at-point)) - - (defadvice flymake-goto-prev-error (after display-message activate compile) - "Display the error in the mini-buffer rather than having to mouse over it" - (show-fly-err-at-point)) + epylint was deprecated in 2.16.0 and targeted for deletion in 3.0.0. + All emacs and flymake related files were removed and their support will + now happen in an external repository: https://github.com/emacsorphanage/pylint. diff --git a/doc/whatsnew/2/2.1/full.rst b/doc/whatsnew/2/2.1/full.rst index a1e7e24c1..03d1e82ac 100644 --- a/doc/whatsnew/2/2.1/full.rst +++ b/doc/whatsnew/2/2.1/full.rst @@ -42,7 +42,7 @@ Release date: 2018-08-01 * Correctly handle the new name of the Python implementation of the ``abc`` module. - Closes PyCQA/astroid#2288 + Closes pylint-dev/astroid#2288 * Modules with ``__getattr__`` are exempted by default from ``no-member`` diff --git a/doc/whatsnew/2/2.10/summary.rst b/doc/whatsnew/2/2.10/summary.rst index 6b3689643..814fd94f5 100644 --- a/doc/whatsnew/2/2.10/summary.rst +++ b/doc/whatsnew/2/2.10/summary.rst @@ -21,7 +21,7 @@ We're going to continue working on improving performance during 2.11. We're also a new ``possible-forgotten-f-prefix`` check that had too much false positives at release time. Check the `possible-forgotten-f-prefix`_ issue if you want to provide knowledge or use case :) -.. _possible-forgotten-f-prefix: https://github.com/PyCQA/pylint/pull/4787 +.. _possible-forgotten-f-prefix: https://github.com/pylint-dev/pylint/pull/4787 New checkers ============ diff --git a/doc/whatsnew/2/2.11/summary.rst b/doc/whatsnew/2/2.11/summary.rst index 39851b0e8..1d16bc521 100644 --- a/doc/whatsnew/2/2.11/summary.rst +++ b/doc/whatsnew/2/2.11/summary.rst @@ -26,7 +26,7 @@ The future ``possible-forgotten-f-prefix`` check still had too much false positi and is delayed again. Check the `possible-forgotten-f-prefix`_ issue if you want to provide knowledge or use case :) -.. _possible-forgotten-f-prefix: https://github.com/PyCQA/pylint/pull/4787 +.. _possible-forgotten-f-prefix: https://github.com/pylint-dev/pylint/pull/4787 .. _pyupgrade: https://github.com/asottile/pyupgrade .. _flynt: https://github.com/ikamensh/flynt diff --git a/doc/whatsnew/2/2.12/full.rst b/doc/whatsnew/2/2.12/full.rst index 923dd9a25..d3f7d0922 100644 --- a/doc/whatsnew/2/2.12/full.rst +++ b/doc/whatsnew/2/2.12/full.rst @@ -83,7 +83,7 @@ Release date: 2021-11-24 and allows it to be checked against actual output in a test. * Fix a crash in the ``check_elif`` extensions where an undetected if in a comprehension - with an if statement within a f-string resulted in an out of range error. The checker no + with an if statement within an f-string resulted in an out of range error. The checker no longer relies on counting if statements anymore and uses known if statements locations instead. It should not crash on badly parsed if statements anymore. diff --git a/doc/whatsnew/2/2.13/full.rst b/doc/whatsnew/2/2.13/full.rst index f723731dc..797648431 100644 --- a/doc/whatsnew/2/2.13/full.rst +++ b/doc/whatsnew/2/2.13/full.rst @@ -250,7 +250,7 @@ Release date: 2022-03-24 * No longer emit ``no-member`` in for loops that reference ``self`` if the binary operation that started the for loop uses a ``self`` that is encapsulated in tuples or lists. - Refs PyCQA/astroid#1360 + Refs pylint-dev/astroid#1360 Closes #4826 * Output better error message if unsupported file formats are used with ``pyreverse``. @@ -389,7 +389,7 @@ Release date: 2022-03-24 * Fixed a crash involving a ``NewType`` named with an f-string. Closes #5770 - Ref PyCQA/astroid#1400 + Ref pylint-dev/astroid#1400 * Improved ``bad-open-mode`` message when providing ``None`` to the ``mode`` argument of an ``open()`` call. @@ -406,13 +406,13 @@ Release date: 2022-03-24 the class itself. Closes #5408 - Ref PyCQA/astroid#1392 + Ref pylint-dev/astroid#1392 * Fixed false positive for ``unused-argument`` when a method overridden in a subclass does nothing with the value of a keyword-only argument. Closes #5771 - Ref PyCQA/astroid#1382 + Ref pylint-dev/astroid#1382 * The issue template for crashes is now created for crashes which were previously not covered by this mechanism. diff --git a/doc/whatsnew/2/2.13/summary.rst b/doc/whatsnew/2/2.13/summary.rst index 73d377a76..ddfb98f84 100644 --- a/doc/whatsnew/2/2.13/summary.rst +++ b/doc/whatsnew/2/2.13/summary.rst @@ -16,7 +16,7 @@ A lot of ``undefined-variables`` and ``used-before-assignment`` issues were reso We started integrating ``pylint-error`` the documentation created by @vald-phoenix a developer from Hlyniane, Ukraine. We hope he's doing well despite the current situation. The deployment is set up but `there's still a lot to do so we welcome any community effort -help to review, integrate, and add good/bad examples <https://github.com/PyCQA/pylint/issues/5953>`_. This should be doable +help to review, integrate, and add good/bad examples <https://github.com/pylint-dev/pylint/issues/5953>`_. This should be doable without any pylint or astroid knowledge, so this is the perfect entrypoint if you want to contribute to pylint without investing any time learning the internals. @@ -144,7 +144,7 @@ Other Changes * No longer emit ``no-member`` in for loops that reference ``self`` if the binary operation that started the for loop uses a ``self`` that is encapsulated in tuples or lists. - Refs PyCQA/astroid#1360 + Refs pylint-dev/astroid#1360 Closes #4826 * Fix matching ``--notes`` options that end in a non-word character. @@ -295,13 +295,13 @@ Other Changes the class itself. Closes #5408 - RefsPyCQA/astroid#1392 + Refs pylint-dev/astroid#1392 * Fixed false positive for ``unused-argument`` when a method overridden in a subclass does nothing with the value of a keyword-only argument. Closes #5771 - RefsPyCQA/astroid#1382 + Refs pylint-dev/astroid#1382 * Optimize parsing of long lines when ``missing-final-newline`` is enabled. @@ -343,7 +343,7 @@ Other Changes * Fixed a crash involving a ``NewType`` named with an f-string. Closes #5770 - RefsPyCQA/astroid#1400 + Refs pylint-dev/astroid#1400 * Improved ``bad-open-mode`` message when providing ``None`` to the ``mode`` argument of an ``open()`` call. diff --git a/doc/whatsnew/2/2.14/summary.rst b/doc/whatsnew/2/2.14/summary.rst index 9ef0f04d9..7101c69b6 100644 --- a/doc/whatsnew/2/2.14/summary.rst +++ b/doc/whatsnew/2/2.14/summary.rst @@ -23,7 +23,7 @@ maintainer that depends on pylint, please verify that you're ready for pylint 3. by activating deprecation warnings. We continued the integration of ``pylint-error`` and are now at 33%!. We still welcome any community effort -to help review, integrate, and add good/bad examples <https://github.com/PyCQA/pylint/issues/5953>`_. This should be doable +to help review, integrate, and add good/bad examples <https://github.com/pylint-dev/pylint/issues/5953>`_. This should be doable without any ``pylint`` or ``astroid`` knowledge, so this is the perfect entrypoint if you want to contribute to ``pylint`` or open source without any experience with our code! diff --git a/doc/whatsnew/2/2.15/index.rst b/doc/whatsnew/2/2.15/index.rst index aab05caef..91e70e341 100644 --- a/doc/whatsnew/2/2.15/index.rst +++ b/doc/whatsnew/2/2.15/index.rst @@ -18,7 +18,7 @@ We improved ``pylint``'s handling of namespace packages. More packages should be linted without resorting to using the ``--recursive=y`` option. We still welcome any community effort to help review, integrate, and add good/bad examples to the doc for -<https://github.com/PyCQA/pylint/issues/5953>`_. This should be doable without any ``pylint`` or ``astroid`` +<https://github.com/pylint-dev/pylint/issues/5953>`_. This should be doable without any ``pylint`` or ``astroid`` knowledge, so this is the perfect entrypoint if you want to contribute to ``pylint`` or open source without any experience with our code! @@ -39,23 +39,23 @@ False Positives Fixed - Fix ``use-sequence-for-iteration`` when unpacking a set with ``*``. - Closes #5788 (`#5788 <https://github.com/PyCQA/pylint/issues/5788>`_) + Closes #5788 (`#5788 <https://github.com/pylint-dev/pylint/issues/5788>`_) - Fix false positive ``assigning-non-slot`` when a class attribute is re-assigned. - Closes #6001 (`#6001 <https://github.com/PyCQA/pylint/issues/6001>`_) + Closes #6001 (`#6001 <https://github.com/pylint-dev/pylint/issues/6001>`_) - Fixes ``used-before-assignment`` false positive when the walrus operator is used in a ternary operator. - Closes #7779 (`#7779 <https://github.com/PyCQA/pylint/issues/7779>`_) + Closes #7779 (`#7779 <https://github.com/pylint-dev/pylint/issues/7779>`_) - Prevent ``used-before-assignment`` when imports guarded by ``if TYPE_CHECKING`` are guarded again when used. - Closes #7979 (`#7979 <https://github.com/PyCQA/pylint/issues/7979>`_) + Closes #7979 (`#7979 <https://github.com/pylint-dev/pylint/issues/7979>`_) @@ -64,7 +64,7 @@ Other Bug Fixes - Using custom braces in ``msg-template`` will now work properly. - Closes #5636 (`#5636 <https://github.com/PyCQA/pylint/issues/5636>`_) + Closes #5636 (`#5636 <https://github.com/pylint-dev/pylint/issues/5636>`_) What's new in Pylint 2.15.9? @@ -78,7 +78,7 @@ False Positives Fixed - Fix false-positive for ``used-before-assignment`` in pattern matching with a guard. - Closes #5327 (`#5327 <https://github.com/PyCQA/pylint/issues/5327>`_) + Closes #5327 (`#5327 <https://github.com/pylint-dev/pylint/issues/5327>`_) @@ -88,17 +88,17 @@ Other Bug Fixes - Pylint will no longer deadlock if a parallel job is killed but fail immediately instead. - Closes #3899 (`#3899 <https://github.com/PyCQA/pylint/issues/3899>`_) + Closes #3899 (`#3899 <https://github.com/pylint-dev/pylint/issues/3899>`_) - When pylint exit due to bad arguments being provided the exit code will now be the expected ``32``. - Refs #7931 (`#7931 <https://github.com/PyCQA/pylint/issues/7931>`_) + Refs #7931 (`#7931 <https://github.com/pylint-dev/pylint/issues/7931>`_) - Fixes a ``ModuleNotFound`` exception when running pylint on a Django project with the ``pylint_django`` plugin enabled. - Closes #7938 (`#7938 <https://github.com/PyCQA/pylint/issues/7938>`_) + Closes #7938 (`#7938 <https://github.com/pylint-dev/pylint/issues/7938>`_) What's new in Pylint 2.15.8? @@ -112,26 +112,26 @@ False Positives Fixed - Document a known false positive for ``useless-suppression`` when disabling ``line-too-long`` in a module with only comments and no code. - Closes #3368 (`#3368 <https://github.com/PyCQA/pylint/issues/3368>`_) + Closes #3368 (`#3368 <https://github.com/pylint-dev/pylint/issues/3368>`_) - Fix ``logging-fstring-interpolation`` false positive raised when logging and f-string with ``%s`` formatting. - Closes #4984 (`#4984 <https://github.com/PyCQA/pylint/issues/4984>`_) + Closes #4984 (`#4984 <https://github.com/pylint-dev/pylint/issues/4984>`_) - Fixes false positive ``abstract-method`` on Protocol classes. - Closes #7209 (`#7209 <https://github.com/PyCQA/pylint/issues/7209>`_) + Closes #7209 (`#7209 <https://github.com/pylint-dev/pylint/issues/7209>`_) - Fix ``missing-param-doc`` false positive when function parameter has an escaped underscore. - Closes #7827 (`#7827 <https://github.com/PyCQA/pylint/issues/7827>`_) + Closes #7827 (`#7827 <https://github.com/pylint-dev/pylint/issues/7827>`_) - ``multiple-statements`` no longer triggers for function stubs using inlined ``...``. - Closes #7860 (`#7860 <https://github.com/PyCQA/pylint/issues/7860>`_) + Closes #7860 (`#7860 <https://github.com/pylint-dev/pylint/issues/7860>`_) What's new in Pylint 2.15.7? @@ -145,12 +145,12 @@ False Positives Fixed - Fix ``deprecated-method`` false positive when alias for method is similar to name of deprecated method. - Closes #5886 (`#5886 <https://github.com/PyCQA/pylint/issues/5886>`_) + Closes #5886 (`#5886 <https://github.com/pylint-dev/pylint/issues/5886>`_) - Fix a false positive for ``used-before-assignment`` for imports guarded by ``typing.TYPE_CHECKING`` later used in variable annotations. - Closes #7609 (`#7609 <https://github.com/PyCQA/pylint/issues/7609>`_) + Closes #7609 (`#7609 <https://github.com/pylint-dev/pylint/issues/7609>`_) @@ -161,12 +161,12 @@ Other Bug Fixes should be the same whether a file is given/discovered multiple times or not. - Closes #6242, #4053 (`#6242 <https://github.com/PyCQA/pylint/issues/6242>`_) + Closes #6242, #4053 (`#6242 <https://github.com/pylint-dev/pylint/issues/6242>`_) - Fixes a crash in ``stop-iteration-return`` when the ``next`` builtin is called without arguments. - Closes #7828 (`#7828 <https://github.com/PyCQA/pylint/issues/7828>`_) + Closes #7828 (`#7828 <https://github.com/pylint-dev/pylint/issues/7828>`_) What's new in Pylint 2.15.6? @@ -180,17 +180,17 @@ False Positives Fixed - Fix false positive for ``unhashable-member`` when subclassing ``dict`` and using the subclass as a dictionary key. - Closes #7501 (`#7501 <https://github.com/PyCQA/pylint/issues/7501>`_) + Closes #7501 (`#7501 <https://github.com/pylint-dev/pylint/issues/7501>`_) - ``unnecessary-list-index-lookup`` will not be wrongly emitted if ``enumerate`` is called with ``start``. - Closes #7682 (`#7682 <https://github.com/PyCQA/pylint/issues/7682>`_) + Closes #7682 (`#7682 <https://github.com/pylint-dev/pylint/issues/7682>`_) - Don't warn about ``stop-iteration-return`` when using ``next()`` over ``itertools.cycle``. - Closes #7765 (`#7765 <https://github.com/PyCQA/pylint/issues/7765>`_) + Closes #7765 (`#7765 <https://github.com/pylint-dev/pylint/issues/7765>`_) @@ -200,21 +200,21 @@ Other Bug Fixes - Messages sent to reporter are now copied so a reporter cannot modify the message sent to other reporters. - Closes #7214 (`#7214 <https://github.com/PyCQA/pylint/issues/7214>`_) + Closes #7214 (`#7214 <https://github.com/pylint-dev/pylint/issues/7214>`_) - Fixes edge case of custom method named ``next`` raised an astroid error. - Closes #7610 (`#7610 <https://github.com/PyCQA/pylint/issues/7610>`_) + Closes #7610 (`#7610 <https://github.com/pylint-dev/pylint/issues/7610>`_) - Fix crash that happened when parsing files with unexpected encoding starting with 'utf' like ``utf13``. - Closes #7661 (`#7661 <https://github.com/PyCQA/pylint/issues/7661>`_) + Closes #7661 (`#7661 <https://github.com/pylint-dev/pylint/issues/7661>`_) - Fix a crash when a child class with an ``__init__`` method inherits from a parent class with an ``__init__`` class attribute. - Closes #7742 (`#7742 <https://github.com/PyCQA/pylint/issues/7742>`_) + Closes #7742 (`#7742 <https://github.com/pylint-dev/pylint/issues/7742>`_) What's new in Pylint 2.15.5? @@ -228,7 +228,7 @@ False Positives Fixed - Fix a false positive for ``simplify-boolean-expression`` when multiple values are inferred for a constant. - Closes #7626 (`#7626 <https://github.com/PyCQA/pylint/issues/7626>`_) + Closes #7626 (`#7626 <https://github.com/pylint-dev/pylint/issues/7626>`_) @@ -238,7 +238,7 @@ Other Bug Fixes - Remove ``__index__`` dunder method call from ``unnecessary-dunder-call`` check. - Closes #6795 (`#6795 <https://github.com/PyCQA/pylint/issues/6795>`_) + Closes #6795 (`#6795 <https://github.com/pylint-dev/pylint/issues/6795>`_) - Fixed a multi-processing crash that prevents using any more than 1 thread on MacOS. @@ -249,7 +249,7 @@ Other Bug Fixes when attempting to serialise the linter object for multi-processing use. - Closes #7635. (`#7635 <https://github.com/PyCQA/pylint/issues/7635>`_) + Closes #7635. (`#7635 <https://github.com/pylint-dev/pylint/issues/7635>`_) @@ -258,11 +258,11 @@ Other Changes - Add a keyword-only ``compare_constants`` argument to ``safe_infer``. - Refs #7626 (`#7626 <https://github.com/PyCQA/pylint/issues/7626>`_) + Refs #7626 (`#7626 <https://github.com/pylint-dev/pylint/issues/7626>`_) - Sort ``--generated-rcfile`` output. - Refs #7655 (`#7655 <https://github.com/PyCQA/pylint/issues/7655>`_) + Refs #7655 (`#7655 <https://github.com/pylint-dev/pylint/issues/7655>`_) What's new in Pylint 2.15.4? @@ -277,7 +277,7 @@ False Positives Fixed ``__anext__``. Also only emit the warning when ``py-version`` >= 3.10. - Closes #7529 (`#7529 <https://github.com/PyCQA/pylint/issues/7529>`_) + Closes #7529 (`#7529 <https://github.com/pylint-dev/pylint/issues/7529>`_) @@ -286,39 +286,39 @@ Other Bug Fixes - Fix bug in detecting ``unused-variable`` when iterating on variable. - Closes #3044 (`#3044 <https://github.com/PyCQA/pylint/issues/3044>`_) + Closes #3044 (`#3044 <https://github.com/pylint-dev/pylint/issues/3044>`_) - Fixed handling of ``--`` as separator between positional arguments and flags. This was not actually fixed in 2.14.5. Closes #7003, Refs #7096 (`#7003 - <https://github.com/PyCQA/pylint/issues/7003>`_) + <https://github.com/pylint-dev/pylint/issues/7003>`_) - Report ``no-self-argument`` rather than ``no-method-argument`` for methods with variadic arguments. - Closes #7507 (`#7507 <https://github.com/PyCQA/pylint/issues/7507>`_) + Closes #7507 (`#7507 <https://github.com/pylint-dev/pylint/issues/7507>`_) - Fixed an issue where ``syntax-error`` couldn't be raised on files with invalid encodings. - Closes #7522 (`#7522 <https://github.com/PyCQA/pylint/issues/7522>`_) + Closes #7522 (`#7522 <https://github.com/pylint-dev/pylint/issues/7522>`_) - Fix false positive for ``redefined-outer-name`` when aliasing ``typing`` e.g. as ``t`` and guarding imports under ``t.TYPE_CHECKING``. - Closes #7524 (`#7524 <https://github.com/PyCQA/pylint/issues/7524>`_) + Closes #7524 (`#7524 <https://github.com/pylint-dev/pylint/issues/7524>`_) - Fixed a crash of the ``modified_iterating`` checker when iterating on a set defined as a class attribute. - Closes #7528 (`#7528 <https://github.com/PyCQA/pylint/issues/7528>`_) + Closes #7528 (`#7528 <https://github.com/pylint-dev/pylint/issues/7528>`_) - Fix bug in scanning of names inside arguments to ``typing.Literal``. See https://peps.python.org/pep-0586/#literals-enums-and-forward-references for details. - Refs #3299 (`#3299 <https://github.com/PyCQA/pylint/issues/3299>`_) + Refs #3299 (`#3299 <https://github.com/pylint-dev/pylint/issues/3299>`_) Other Changes @@ -327,7 +327,7 @@ Other Changes - Add method name to the error messages of ``no-method-argument`` and ``no-self-argument``. - Closes #7507 (`#7507 <https://github.com/PyCQA/pylint/issues/7507>`_) + Closes #7507 (`#7507 <https://github.com/pylint-dev/pylint/issues/7507>`_) What's new in Pylint 2.15.3? @@ -337,23 +337,23 @@ Release date: 2022-09-19 - Fixed a crash in the ``unhashable-member`` checker when using a ``lambda`` as a dict key. - Closes #7453 (`#7453 <https://github.com/PyCQA/pylint/issues/7453>`_) + Closes #7453 (`#7453 <https://github.com/pylint-dev/pylint/issues/7453>`_) - Fix a crash in the ``modified-iterating-dict`` checker involving instance attributes. - Closes #7461 (`#7461 <https://github.com/PyCQA/pylint/issues/7461>`_) + Closes #7461 (`#7461 <https://github.com/pylint-dev/pylint/issues/7461>`_) - ``invalid-class-object`` does not crash anymore when ``__class__`` is assigned alongside another variable. - Closes #7467 (`#7467 <https://github.com/PyCQA/pylint/issues/7467>`_) + Closes #7467 (`#7467 <https://github.com/pylint-dev/pylint/issues/7467>`_) - Fix false positive for ``global-variable-not-assigned`` when a global variable is re-assigned via an ``ImportFrom`` node. - Closes #4809 (`#4809 <https://github.com/PyCQA/pylint/issues/4809>`_) + Closes #4809 (`#4809 <https://github.com/pylint-dev/pylint/issues/4809>`_) - Fix false positive for ``undefined-loop-variable`` in ``for-else`` loops that use a function having a return type annotation of ``NoReturn`` or ``Never``. - Closes #7311 (`#7311 <https://github.com/PyCQA/pylint/issues/7311>`_) + Closes #7311 (`#7311 <https://github.com/pylint-dev/pylint/issues/7311>`_) - ``--help-msg`` now accepts a comma-separated list of message IDs again. - Closes #7471 (`#7471 <https://github.com/PyCQA/pylint/issues/7471>`_) + Closes #7471 (`#7471 <https://github.com/pylint-dev/pylint/issues/7471>`_) What's new in Pylint 2.15.2? ---------------------------- @@ -366,42 +366,42 @@ Release date: 2022-09-07 change, it would silently fail to register the plugin for use, but would load any configuration, which could have unintended effects. - Fixes part of #7264. (`#7264 <https://github.com/PyCQA/pylint/issues/7264>`_) + Fixes part of #7264. (`#7264 <https://github.com/pylint-dev/pylint/issues/7264>`_) - Fix ``used-before-assignment`` for functions/classes defined in type checking guard. - Closes #7368 (`#7368 <https://github.com/PyCQA/pylint/issues/7368>`_) + Closes #7368 (`#7368 <https://github.com/pylint-dev/pylint/issues/7368>`_) - Update ``modified_iterating`` checker to fix a crash with ``for`` loops on empty list. - Closes #7380 (`#7380 <https://github.com/PyCQA/pylint/issues/7380>`_) + Closes #7380 (`#7380 <https://github.com/pylint-dev/pylint/issues/7380>`_) - The ``docparams`` extension now considers typing in Numpy style docstrings as "documentation" for the ``missing-param-doc`` message. - Refs #7398 (`#7398 <https://github.com/PyCQA/pylint/issues/7398>`_) + Refs #7398 (`#7398 <https://github.com/pylint-dev/pylint/issues/7398>`_) - Fix false positive for ``unused-variable`` and ``unused-import`` when a name is only used in a string literal type annotation. - Closes #3299 (`#3299 <https://github.com/PyCQA/pylint/issues/3299>`_) + Closes #3299 (`#3299 <https://github.com/pylint-dev/pylint/issues/3299>`_) - Fix false positive for ``too-many-function-args`` when a function call is assigned to a class attribute inside the class where the function is defined. - Closes #6592 (`#6592 <https://github.com/PyCQA/pylint/issues/6592>`_) + Closes #6592 (`#6592 <https://github.com/pylint-dev/pylint/issues/6592>`_) - Fix ``used-before-assignment`` for functions/classes defined in type checking guard. - Closes #7368 (`#7368 <https://github.com/PyCQA/pylint/issues/7368>`_) + Closes #7368 (`#7368 <https://github.com/pylint-dev/pylint/issues/7368>`_) - Fix ignored files being linted when passed on stdin. - Closes #4354 (`#4354 <https://github.com/PyCQA/pylint/issues/4354>`_) + Closes #4354 (`#4354 <https://github.com/pylint-dev/pylint/issues/4354>`_) - ``missing-return-doc``, ``missing-raises-doc`` and ``missing-yields-doc`` now respect the ``no-docstring-rgx`` option. - Closes #4743 (`#4743 <https://github.com/PyCQA/pylint/issues/4743>`_) + Closes #4743 (`#4743 <https://github.com/pylint-dev/pylint/issues/4743>`_) - Don't crash on ``OSError`` in config file discovery. - Closes #7169 (`#7169 <https://github.com/PyCQA/pylint/issues/7169>`_) + Closes #7169 (`#7169 <https://github.com/pylint-dev/pylint/issues/7169>`_) - ``disable-next`` is now correctly scoped to only the succeeding line. - Closes #7401 (`#7401 <https://github.com/PyCQA/pylint/issues/7401>`_) + Closes #7401 (`#7401 <https://github.com/pylint-dev/pylint/issues/7401>`_) - Update ``modified_iterating`` checker to fix a crash with ``for`` loops on empty list. - Closes #7380 (`#7380 <https://github.com/PyCQA/pylint/issues/7380>`_) + Closes #7380 (`#7380 <https://github.com/pylint-dev/pylint/issues/7380>`_) What's new in Pylint 2.15.1? ---------------------------- @@ -418,7 +418,7 @@ New Checks - Added new checker ``missing-timeout`` to warn of default timeout values that could cause a program to be hanging indefinitely. - Refs #6780 (`#6780 <https://github.com/PyCQA/pylint/issues/6780>`_) + Refs #6780 (`#6780 <https://github.com/pylint-dev/pylint/issues/6780>`_) False Positives Fixed @@ -426,39 +426,39 @@ False Positives Fixed - Don't report ``super-init-not-called`` for abstract ``__init__`` methods. - Closes #3975 (`#3975 <https://github.com/PyCQA/pylint/issues/3975>`_) + Closes #3975 (`#3975 <https://github.com/pylint-dev/pylint/issues/3975>`_) - Don't report ``unsupported-binary-operation`` on Python <= 3.9 when using the ``|`` operator with types, if one has a metaclass that overloads ``__or__`` or ``__ror__`` as appropriate. - Closes #4951 (`#4951 <https://github.com/PyCQA/pylint/issues/4951>`_) + Closes #4951 (`#4951 <https://github.com/pylint-dev/pylint/issues/4951>`_) - Don't report ``no-value-for-parameter`` for dataclasses fields annotated with ``KW_ONLY``. - Closes #5767 (`#5767 <https://github.com/PyCQA/pylint/issues/5767>`_) + Closes #5767 (`#5767 <https://github.com/pylint-dev/pylint/issues/5767>`_) - Fixed inference of ``Enums`` when they are imported under an alias. - Closes #5776 (`#5776 <https://github.com/PyCQA/pylint/issues/5776>`_) + Closes #5776 (`#5776 <https://github.com/pylint-dev/pylint/issues/5776>`_) - Prevent false positives when accessing ``PurePath.parents`` by index (not slice) on Python 3.10+. - Closes #5832 (`#5832 <https://github.com/PyCQA/pylint/issues/5832>`_) + Closes #5832 (`#5832 <https://github.com/pylint-dev/pylint/issues/5832>`_) - ``unnecessary-list-index-lookup`` is now more conservative to avoid potential false positives. - Closes #6896 (`#6896 <https://github.com/PyCQA/pylint/issues/6896>`_) + Closes #6896 (`#6896 <https://github.com/pylint-dev/pylint/issues/6896>`_) - Fix double emitting ``trailing-whitespace`` for multi-line docstrings. - Closes #6936 (`#6936 <https://github.com/PyCQA/pylint/issues/6936>`_) + Closes #6936 (`#6936 <https://github.com/pylint-dev/pylint/issues/6936>`_) - ``import-error`` now correctly checks for ``contextlib.suppress`` guards on import statements. - Closes #7270 (`#7270 <https://github.com/PyCQA/pylint/issues/7270>`_) + Closes #7270 (`#7270 <https://github.com/pylint-dev/pylint/issues/7270>`_) - Fix false positive for `no-self-argument`/`no-method-argument` when a staticmethod is applied to a function but uses a different name. - Closes #7300 (`#7300 <https://github.com/PyCQA/pylint/issues/7300>`_) + Closes #7300 (`#7300 <https://github.com/pylint-dev/pylint/issues/7300>`_) - Fix `undefined-loop-variable` with `break` and `continue` statements in `else` blocks. - Refs #7311 (`#7311 <https://github.com/PyCQA/pylint/issues/7311>`_) + Refs #7311 (`#7311 <https://github.com/pylint-dev/pylint/issues/7311>`_) - Improve default TypeVar name regex. Disallow names prefixed with ``T``. E.g. use ``AnyStrT`` instead of ``TAnyStr``. - Refs #7322 (`#7322 <https://github.com/PyCQA/pylint/issues/7322>`_`) + Refs #7322 (`#7322 <https://github.com/pylint-dev/pylint/issues/7322>`_`) False Negatives Fixed @@ -466,32 +466,32 @@ False Negatives Fixed - Emit ``used-before-assignment`` when relying on a name that is reimported later in a function. - Closes #4624 (`#4624 <https://github.com/PyCQA/pylint/issues/4624>`_) + Closes #4624 (`#4624 <https://github.com/pylint-dev/pylint/issues/4624>`_) - Emit ``used-before-assignment`` for self-referencing named expressions (``:=``) lacking prior assignments. - Closes #5653 (`#5653 <https://github.com/PyCQA/pylint/issues/5653>`_) + Closes #5653 (`#5653 <https://github.com/pylint-dev/pylint/issues/5653>`_) - Emit ``used-before-assignment`` for self-referencing assignments under if conditions. - Closes #6643 (`#6643 <https://github.com/PyCQA/pylint/issues/6643>`_) + Closes #6643 (`#6643 <https://github.com/pylint-dev/pylint/issues/6643>`_) - Emit ``modified-iterating-list`` and analogous messages for dicts and sets when iterating literals, or when using the ``del`` keyword. - Closes #6648 (`#6648 <https://github.com/PyCQA/pylint/issues/6648>`_) + Closes #6648 (`#6648 <https://github.com/pylint-dev/pylint/issues/6648>`_) - Emit ``used-before-assignment`` when calling nested functions before assignment. - Closes #6812 (`#6812 <https://github.com/PyCQA/pylint/issues/6812>`_) + Closes #6812 (`#6812 <https://github.com/pylint-dev/pylint/issues/6812>`_) - Emit ``nonlocal-without-binding`` when a nonlocal name has been assigned at a later point in the same scope. - Closes #6883 (`#6883 <https://github.com/PyCQA/pylint/issues/6883>`_) + Closes #6883 (`#6883 <https://github.com/pylint-dev/pylint/issues/6883>`_) - Emit ``using-constant-test`` when testing the truth value of a variable or call result holding a generator. - Closes #6909 (`#6909 <https://github.com/PyCQA/pylint/issues/6909>`_) + Closes #6909 (`#6909 <https://github.com/pylint-dev/pylint/issues/6909>`_) - Rename ``unhashable-dict-key`` to ``unhashable-member`` and emit when creating sets and dicts, not just when accessing dicts. - Closes #7034, Closes #7055 (`#7034 <https://github.com/PyCQA/pylint/issues/7034>`_) + Closes #7034, Closes #7055 (`#7034 <https://github.com/pylint-dev/pylint/issues/7034>`_) Other Bug Fixes @@ -499,30 +499,30 @@ Other Bug Fixes - Fix a failure to lint packages with ``__init__.py`` contained in directories lacking ``__init__.py``. - Closes #1667 (`#1667 <https://github.com/PyCQA/pylint/issues/1667>`_) + Closes #1667 (`#1667 <https://github.com/pylint-dev/pylint/issues/1667>`_) - Fixed a syntax-error crash that was not handled properly when the declared encoding of a file was ``utf-9``. - Closes #3860 (`#3860 <https://github.com/PyCQA/pylint/issues/3860>`_) + Closes #3860 (`#3860 <https://github.com/pylint-dev/pylint/issues/3860>`_) - Fix a crash in the ``not-callable`` check when there is ambiguity whether an instance is being incorrectly provided to ``__new__()``. - Closes #7109 (`#7109 <https://github.com/PyCQA/pylint/issues/7109>`_) + Closes #7109 (`#7109 <https://github.com/pylint-dev/pylint/issues/7109>`_) - Fix crash when regex option raises a `re.error` exception. - Closes #7202 (`#7202 <https://github.com/PyCQA/pylint/issues/7202>`_) + Closes #7202 (`#7202 <https://github.com/pylint-dev/pylint/issues/7202>`_) - Fix `undefined-loop-variable` from walrus in comprehension test. - Closes #7222 (`#7222 <https://github.com/PyCQA/pylint/issues/7222>`_) + Closes #7222 (`#7222 <https://github.com/pylint-dev/pylint/issues/7222>`_) - Check for `<cwd>` before removing first item from `sys.path` in `modify_sys_path`. - Closes #7231 (`#7231 <https://github.com/PyCQA/pylint/issues/7231>`_) + Closes #7231 (`#7231 <https://github.com/pylint-dev/pylint/issues/7231>`_) - Fix sys.path pollution in parallel mode. - Closes #7246 (`#7246 <https://github.com/PyCQA/pylint/issues/7246>`_) + Closes #7246 (`#7246 <https://github.com/pylint-dev/pylint/issues/7246>`_) - Prevent `useless-parent-delegation` for delegating to a builtin written in C (e.g. `Exception.__init__`) with non-self arguments. - Closes #7319 (`#7319 <https://github.com/PyCQA/pylint/issues/7319>`_) + Closes #7319 (`#7319 <https://github.com/pylint-dev/pylint/issues/7319>`_) Other Changes @@ -530,23 +530,23 @@ Other Changes - ``bad-exception-context`` has been renamed to ``bad-exception-cause`` as it is about the cause and not the context. - Closes #3694 (`#3694 <https://github.com/PyCQA/pylint/issues/3694>`_) + Closes #3694 (`#3694 <https://github.com/pylint-dev/pylint/issues/3694>`_) - The message for ``literal-comparison`` is now more explicit about the problem and the solution. - Closes #5237 (`#5237 <https://github.com/PyCQA/pylint/issues/5237>`_) + Closes #5237 (`#5237 <https://github.com/pylint-dev/pylint/issues/5237>`_) - ``useless-super-delegation`` has been renamed to ``useless-parent-delegation`` in order to be more generic. - Closes #6953 (`#6953 <https://github.com/PyCQA/pylint/issues/6953>`_) + Closes #6953 (`#6953 <https://github.com/pylint-dev/pylint/issues/6953>`_) - Pylint now uses ``towncrier`` for changelog generation. - Refs #6974 (`#6974 <https://github.com/PyCQA/pylint/issues/6974>`_) + Refs #6974 (`#6974 <https://github.com/pylint-dev/pylint/issues/6974>`_) - Update ``astroid`` to 2.12. - Refs #7153 (`#7153 <https://github.com/PyCQA/pylint/issues/7153>`_) + Refs #7153 (`#7153 <https://github.com/pylint-dev/pylint/issues/7153>`_) - Fix crash when a type-annotated `__slots__` with no value is declared. - Closes #7280 (`#7280 <https://github.com/PyCQA/pylint/issues/7280>`_) + Closes #7280 (`#7280 <https://github.com/pylint-dev/pylint/issues/7280>`_) Internal Changes @@ -556,17 +556,17 @@ Internal Changes output was impossible to parse. Instead of raising an error we raise a warning message and let the functional test fail with a default value. - Refs #6891 (`#6891 <https://github.com/PyCQA/pylint/issues/6891>`_) + Refs #6891 (`#6891 <https://github.com/pylint-dev/pylint/issues/6891>`_) - ``pylint.testutils.primer`` is now a private API. - Refs #6905 (`#6905 <https://github.com/PyCQA/pylint/issues/6905>`_) + Refs #6905 (`#6905 <https://github.com/pylint-dev/pylint/issues/6905>`_) - We changed the way we handle the changelog internally by using towncrier. If you're a contributor you won't have to fix merge conflicts in the changelog anymore. - Closes #6974 (`#6974 <https://github.com/PyCQA/pylint/issues/6974>`_) + Closes #6974 (`#6974 <https://github.com/pylint-dev/pylint/issues/6974>`_) - Pylint is now using Scorecards to implement security recommendations from the `OpenSSF <https://openssf.org/>`_. This is done in order to secure our supply chains using a combination of automated tooling and best practices, most of which were already implemented before. - Refs #7267 (`#7267 <https://github.com/PyCQA/pylint/issues/7267>`_) + Refs #7267 (`#7267 <https://github.com/pylint-dev/pylint/issues/7267>`_) diff --git a/doc/whatsnew/2/2.16/index.rst b/doc/whatsnew/2/2.16/index.rst index 605b9b18b..3a9731ce3 100644 --- a/doc/whatsnew/2/2.16/index.rst +++ b/doc/whatsnew/2/2.16/index.rst @@ -24,7 +24,7 @@ If you want to benefit from all the new checks load the following plugins:: pylint.extensions.magic_value, We still welcome any community effort to help review, integrate, and add good/bad examples to the doc for -<https://github.com/PyCQA/pylint/issues/5953>`_. This should be doable without any ``pylint`` or ``astroid`` +<https://github.com/pylint-dev/pylint/issues/5953>`_. This should be doable without any ``pylint`` or ``astroid`` knowledge, so this is the perfect entrypoint if you want to contribute to ``pylint`` or open source without any experience with our code! @@ -43,7 +43,7 @@ False Positives Fixed - Fix false positive for isinstance-second-argument-not-valid-type with union types. - Closes #8205 (`#8205 <https://github.com/PyCQA/pylint/issues/8205>`_) + Closes #8205 (`#8205 <https://github.com/pylint-dev/pylint/issues/8205>`_) What's new in Pylint 2.16.3? @@ -57,7 +57,7 @@ False Positives Fixed - Fix false positive for ``wrong-spelling-in-comment`` with class names in a python 2 type comment. - Closes #8370 (`#8370 <https://github.com/PyCQA/pylint/issues/8370>`_) + Closes #8370 (`#8370 <https://github.com/pylint-dev/pylint/issues/8370>`_) @@ -67,7 +67,7 @@ Other Bug Fixes - Prevent emitting ``invalid-name`` for the line on which a ``global`` statement is declared. - Closes #8307 (`#8307 <https://github.com/PyCQA/pylint/issues/8307>`_) + Closes #8307 (`#8307 <https://github.com/pylint-dev/pylint/issues/8307>`_) What's new in Pylint 2.16.2? @@ -80,7 +80,7 @@ New Features - Add `--version` option to `pyreverse`. - Refs #7851 (`#7851 <https://github.com/PyCQA/pylint/issues/7851>`_) + Refs #7851 (`#7851 <https://github.com/pylint-dev/pylint/issues/7851>`_) @@ -90,12 +90,12 @@ False Positives Fixed - Fix false positive for ``used-before-assignment`` when ``typing.TYPE_CHECKING`` is used with if/elif/else blocks. - Closes #7574 (`#7574 <https://github.com/PyCQA/pylint/issues/7574>`_) + Closes #7574 (`#7574 <https://github.com/pylint-dev/pylint/issues/7574>`_) - Fix false positive for ``used-before-assignment`` for named expressions appearing after the first element in a list, tuple, or set. - Closes #8252 (`#8252 <https://github.com/PyCQA/pylint/issues/8252>`_) + Closes #8252 (`#8252 <https://github.com/pylint-dev/pylint/issues/8252>`_) @@ -105,23 +105,23 @@ Other Bug Fixes - Fix ``used-before-assignment`` false positive when the walrus operator is used with a ternary operator in dictionary key/value initialization. - Closes #8125 (`#8125 <https://github.com/PyCQA/pylint/issues/8125>`_) + Closes #8125 (`#8125 <https://github.com/pylint-dev/pylint/issues/8125>`_) - Fix ``no-name-in-module`` false positive raised when a package defines a variable with the same name as one of its submodules. - Closes #8148 (`#8148 <https://github.com/PyCQA/pylint/issues/8148>`_) + Closes #8148 (`#8148 <https://github.com/pylint-dev/pylint/issues/8148>`_) - Fix ``nested-min-max`` suggestion message to indicate it's possible to splat iterable objects. - Closes #8168 (`#8168 <https://github.com/PyCQA/pylint/issues/8168>`_) + Closes #8168 (`#8168 <https://github.com/pylint-dev/pylint/issues/8168>`_) - Fix a crash happening when a class attribute was negated in the start argument of an enumerate. - Closes #8207 (`#8207 <https://github.com/PyCQA/pylint/issues/8207>`_) + Closes #8207 (`#8207 <https://github.com/pylint-dev/pylint/issues/8207>`_) What's new in Pylint 2.16.1? @@ -135,7 +135,7 @@ Other Bug Fixes - Fix a crash happening for python interpreter < 3.9 following a failed typing update. - Closes #8161 (`#8161 <https://github.com/PyCQA/pylint/issues/8161>`_) + Closes #8161 (`#8161 <https://github.com/pylint-dev/pylint/issues/8161>`_) What's new in Pylint 2.16.0? @@ -156,7 +156,7 @@ Changes requiring user actions will now have to add ``accept-no-raise-doc=no`` in your configuration to keep the same behavior. - Closes #7208 (`#7208 <https://github.com/PyCQA/pylint/issues/7208>`_) + Closes #7208 (`#7208 <https://github.com/pylint-dev/pylint/issues/7208>`_) @@ -167,26 +167,26 @@ New Features ``--output-format=no-header``, it will not include the module name in the output. - Closes #5362 (`#5362 <https://github.com/PyCQA/pylint/issues/5362>`_) + Closes #5362 (`#5362 <https://github.com/pylint-dev/pylint/issues/5362>`_) - Added configuration option ``clear-cache-post-run`` to support server-like usage. Use this flag if you expect the linted files to be altered between runs. - Refs #5401 (`#5401 <https://github.com/PyCQA/pylint/issues/5401>`_) + Refs #5401 (`#5401 <https://github.com/pylint-dev/pylint/issues/5401>`_) - Add ``--allow-reexport-from-package`` option to configure the ``useless-import-alias`` check not to emit a warning if a name is reexported from a package. - Closes #6006 (`#6006 <https://github.com/PyCQA/pylint/issues/6006>`_) + Closes #6006 (`#6006 <https://github.com/pylint-dev/pylint/issues/6006>`_) - Update ``pyreverse`` to differentiate between aggregations and compositions. ``pyreverse`` checks if it's an Instance or a Call of an object via method parameters (via type hints) to decide if it's a composition or an aggregation. - Refs #6543 (`#6543 <https://github.com/PyCQA/pylint/issues/6543>`_) + Refs #6543 (`#6543 <https://github.com/pylint-dev/pylint/issues/6543>`_) @@ -196,23 +196,23 @@ New Checks - Adds a ``pointless-exception-statement`` check that emits a warning when an Exception is created and not assigned, raised or returned. - Refs #3110 (`#3110 <https://github.com/PyCQA/pylint/issues/3110>`_) + Refs #3110 (`#3110 <https://github.com/pylint-dev/pylint/issues/3110>`_) - Add a ``shadowed-import`` message for aliased imports. - Closes #4836 (`#4836 <https://github.com/PyCQA/pylint/issues/4836>`_) + Closes #4836 (`#4836 <https://github.com/pylint-dev/pylint/issues/4836>`_) - Add new check called ``unbalanced-dict-unpacking`` to check for unbalanced dict unpacking in assignment and for loops. - Closes #5797 (`#5797 <https://github.com/PyCQA/pylint/issues/5797>`_) + Closes #5797 (`#5797 <https://github.com/pylint-dev/pylint/issues/5797>`_) - Add new checker ``positional-only-arguments-expected`` to check for cases when positional-only arguments have been passed as keyword arguments. - Closes #6489 (`#6489 <https://github.com/PyCQA/pylint/issues/6489>`_) + Closes #6489 (`#6489 <https://github.com/pylint-dev/pylint/issues/6489>`_) - Added ``singledispatch-method`` which informs that ``@singledispatch`` should decorate functions and not class/instance methods. @@ -220,42 +220,42 @@ New Checks ``@singledispatchmethod`` should decorate class/instance methods and not functions. - Closes #6917 (`#6917 <https://github.com/PyCQA/pylint/issues/6917>`_) + Closes #6917 (`#6917 <https://github.com/pylint-dev/pylint/issues/6917>`_) - Rename ``broad-except`` to ``broad-exception-caught`` and add new checker ``broad-exception-raised`` which will warn if general exceptions ``BaseException`` or ``Exception`` are raised. - Closes #7494 (`#7494 <https://github.com/PyCQA/pylint/issues/7494>`_) + Closes #7494 (`#7494 <https://github.com/pylint-dev/pylint/issues/7494>`_) - Added ``nested-min-max`` which flags ``min(1, min(2, 3))`` to simplify to ``min(1, 2, 3)``. - Closes #7546 (`#7546 <https://github.com/PyCQA/pylint/issues/7546>`_) + Closes #7546 (`#7546 <https://github.com/pylint-dev/pylint/issues/7546>`_) - Extended ``use-dict-literal`` to also warn about call to ``dict()`` when passing keyword arguments. - Closes #7690 (`#7690 <https://github.com/PyCQA/pylint/issues/7690>`_) + Closes #7690 (`#7690 <https://github.com/pylint-dev/pylint/issues/7690>`_) - Add ``named-expr-without-context`` check to emit a warning if a named expression is used outside a context like ``if``, ``for``, ``while``, or a comprehension. - Refs #7760 (`#7760 <https://github.com/PyCQA/pylint/issues/7760>`_) + Refs #7760 (`#7760 <https://github.com/pylint-dev/pylint/issues/7760>`_) - Add ``invalid-slice-step`` check to warn about a slice step value of ``0`` for common builtin sequences. - Refs #7762 (`#7762 <https://github.com/PyCQA/pylint/issues/7762>`_) + Refs #7762 (`#7762 <https://github.com/pylint-dev/pylint/issues/7762>`_) - Add ``consider-refactoring-into-while-condition`` check to recommend refactoring when a while loop is defined with a constant condition with an immediate ``if`` statement to check for ``break`` condition as a first statement. - Closes #8015 (`#8015 <https://github.com/PyCQA/pylint/issues/8015>`_) + Closes #8015 (`#8015 <https://github.com/pylint-dev/pylint/issues/8015>`_) @@ -266,13 +266,13 @@ Extensions dictionary immediately after the dictionary was created. - Closes #2876 (`#2876 <https://github.com/PyCQA/pylint/issues/2876>`_) + Closes #2876 (`#2876 <https://github.com/pylint-dev/pylint/issues/2876>`_) - Added ``bad-dunder-name`` extension check, which flags bad or misspelled dunder methods. You can use the ``good-dunder-names`` option to allow specific dunder names. - Closes #3038 (`#3038 <https://github.com/PyCQA/pylint/issues/3038>`_) + Closes #3038 (`#3038 <https://github.com/pylint-dev/pylint/issues/3038>`_) - Added ``consider-using-augmented-assign`` check for ``CodeStyle`` extension which flags ``x = x + 1`` to simplify to ``x += 1``. @@ -280,20 +280,20 @@ Extensions with ``load-plugins=pylint.extensions.code_style`` and add ``consider-using-augmented-assign`` in the ``enable`` option. - Closes #3391 (`#3391 <https://github.com/PyCQA/pylint/issues/3391>`_) + Closes #3391 (`#3391 <https://github.com/pylint-dev/pylint/issues/3391>`_) - Add ``magic-number`` plugin checker for comparison with constants instead of named constants or enums. You can use it with ``--load-plugins=pylint.extensions.magic_value``. - Closes #7281 (`#7281 <https://github.com/PyCQA/pylint/issues/7281>`_) + Closes #7281 (`#7281 <https://github.com/pylint-dev/pylint/issues/7281>`_) - Add ``redundant-typehint-argument`` message for `typing` plugin for duplicate assign typehints. Enable the plugin to enable the message with: ``--load-plugins=pylint.extensions.typing``. - Closes #7636 (`#7636 <https://github.com/PyCQA/pylint/issues/7636>`_) + Closes #7636 (`#7636 <https://github.com/pylint-dev/pylint/issues/7636>`_) @@ -303,160 +303,160 @@ False Positives Fixed - Fix false positive for ``unused-variable`` and ``unused-import`` when a name is only used in a string literal type annotation. - Closes #3299 (`#3299 <https://github.com/PyCQA/pylint/issues/3299>`_) + Closes #3299 (`#3299 <https://github.com/pylint-dev/pylint/issues/3299>`_) - Document a known false positive for ``useless-suppression`` when disabling ``line-too-long`` in a module with only comments and no code. - Closes #3368 (`#3368 <https://github.com/PyCQA/pylint/issues/3368>`_) + Closes #3368 (`#3368 <https://github.com/pylint-dev/pylint/issues/3368>`_) - ``trailing-whitespaces`` is no longer reported within strings. - Closes #3822 (`#3822 <https://github.com/PyCQA/pylint/issues/3822>`_) + Closes #3822 (`#3822 <https://github.com/pylint-dev/pylint/issues/3822>`_) - Fix false positive for ``global-variable-not-assigned`` when a global variable is re-assigned via an ``ImportFrom`` node. - Closes #4809 (`#4809 <https://github.com/PyCQA/pylint/issues/4809>`_) + Closes #4809 (`#4809 <https://github.com/pylint-dev/pylint/issues/4809>`_) - Fix false positive for ``use-maxsplit-arg`` with custom split method. - Closes #4857 (`#4857 <https://github.com/PyCQA/pylint/issues/4857>`_) + Closes #4857 (`#4857 <https://github.com/pylint-dev/pylint/issues/4857>`_) - Fix ``logging-fstring-interpolation`` false positive raised when logging and f-string with ``%s`` formatting. - Closes #4984 (`#4984 <https://github.com/PyCQA/pylint/issues/4984>`_) + Closes #4984 (`#4984 <https://github.com/pylint-dev/pylint/issues/4984>`_) - Fix false-positive for ``used-before-assignment`` in pattern matching with a guard. - Closes #5327 (`#5327 <https://github.com/PyCQA/pylint/issues/5327>`_) + Closes #5327 (`#5327 <https://github.com/pylint-dev/pylint/issues/5327>`_) - Fix ``use-sequence-for-iteration`` when unpacking a set with ``*``. - Closes #5788 (`#5788 <https://github.com/PyCQA/pylint/issues/5788>`_) + Closes #5788 (`#5788 <https://github.com/pylint-dev/pylint/issues/5788>`_) - Fix ``deprecated-method`` false positive when alias for method is similar to name of deprecated method. - Closes #5886 (`#5886 <https://github.com/PyCQA/pylint/issues/5886>`_) + Closes #5886 (`#5886 <https://github.com/pylint-dev/pylint/issues/5886>`_) - Fix false positive ``assigning-non-slot`` when a class attribute is re-assigned. - Closes #6001 (`#6001 <https://github.com/PyCQA/pylint/issues/6001>`_) + Closes #6001 (`#6001 <https://github.com/pylint-dev/pylint/issues/6001>`_) - Fix false positive for ``too-many-function-args`` when a function call is assigned to a class attribute inside the class where the function is defined. - Closes #6592 (`#6592 <https://github.com/PyCQA/pylint/issues/6592>`_) + Closes #6592 (`#6592 <https://github.com/pylint-dev/pylint/issues/6592>`_) - Fixes false positive ``abstract-method`` on Protocol classes. - Closes #7209 (`#7209 <https://github.com/PyCQA/pylint/issues/7209>`_) + Closes #7209 (`#7209 <https://github.com/pylint-dev/pylint/issues/7209>`_) - Pylint now understands the ``kw_only`` keyword argument for ``dataclass``. Closes #7290, closes #6550, closes #5857 (`#7290 - <https://github.com/PyCQA/pylint/issues/7290>`_) + <https://github.com/pylint-dev/pylint/issues/7290>`_) - Fix false positive for ``undefined-loop-variable`` in ``for-else`` loops that use a function having a return type annotation of ``NoReturn`` or ``Never``. - Closes #7311 (`#7311 <https://github.com/PyCQA/pylint/issues/7311>`_) + Closes #7311 (`#7311 <https://github.com/pylint-dev/pylint/issues/7311>`_) - Fix ``used-before-assignment`` for functions/classes defined in type checking guard. - Closes #7368 (`#7368 <https://github.com/PyCQA/pylint/issues/7368>`_) + Closes #7368 (`#7368 <https://github.com/pylint-dev/pylint/issues/7368>`_) - Fix false positive for ``unhashable-member`` when subclassing ``dict`` and using the subclass as a dictionary key. - Closes #7501 (`#7501 <https://github.com/PyCQA/pylint/issues/7501>`_) + Closes #7501 (`#7501 <https://github.com/pylint-dev/pylint/issues/7501>`_) - Fix the message for ``unnecessary-dunder-call`` for ``__aiter__`` and ``__aneext__``. Also only emit the warning when ``py-version`` >= 3.10. - Closes #7529 (`#7529 <https://github.com/PyCQA/pylint/issues/7529>`_) + Closes #7529 (`#7529 <https://github.com/pylint-dev/pylint/issues/7529>`_) - Fix ``used-before-assignment`` false positive when else branch calls ``sys.exit`` or similar terminating functions. - Closes #7563 (`#7563 <https://github.com/PyCQA/pylint/issues/7563>`_) + Closes #7563 (`#7563 <https://github.com/pylint-dev/pylint/issues/7563>`_) - Fix a false positive for ``used-before-assignment`` for imports guarded by ``typing.TYPE_CHECKING`` later used in variable annotations. - Closes #7609 (`#7609 <https://github.com/PyCQA/pylint/issues/7609>`_) + Closes #7609 (`#7609 <https://github.com/pylint-dev/pylint/issues/7609>`_) - Fix a false positive for ``simplify-boolean-expression`` when multiple values are inferred for a constant. - Closes #7626 (`#7626 <https://github.com/PyCQA/pylint/issues/7626>`_) + Closes #7626 (`#7626 <https://github.com/pylint-dev/pylint/issues/7626>`_) - ``unnecessary-list-index-lookup`` will not be wrongly emitted if ``enumerate`` is called with ``start``. - Closes #7682 (`#7682 <https://github.com/PyCQA/pylint/issues/7682>`_) + Closes #7682 (`#7682 <https://github.com/pylint-dev/pylint/issues/7682>`_) - Don't warn about ``stop-iteration-return`` when using ``next()`` over ``itertools.cycle``. - Closes #7765 (`#7765 <https://github.com/PyCQA/pylint/issues/7765>`_) + Closes #7765 (`#7765 <https://github.com/pylint-dev/pylint/issues/7765>`_) - Fixes ``used-before-assignment`` false positive when the walrus operator is used in a ternary operator. - Closes #7779 (`#7779 <https://github.com/PyCQA/pylint/issues/7779>`_) + Closes #7779 (`#7779 <https://github.com/pylint-dev/pylint/issues/7779>`_) - Fix ``missing-param-doc`` false positive when function parameter has an escaped underscore. - Closes #7827 (`#7827 <https://github.com/PyCQA/pylint/issues/7827>`_) + Closes #7827 (`#7827 <https://github.com/pylint-dev/pylint/issues/7827>`_) - Fixes ``method-cache-max-size-none`` false positive for methods inheriting from ``Enum``. - Closes #7857 (`#7857 <https://github.com/PyCQA/pylint/issues/7857>`_) + Closes #7857 (`#7857 <https://github.com/pylint-dev/pylint/issues/7857>`_) - ``multiple-statements`` no longer triggers for function stubs using inlined ``...``. - Closes #7860 (`#7860 <https://github.com/PyCQA/pylint/issues/7860>`_) + Closes #7860 (`#7860 <https://github.com/pylint-dev/pylint/issues/7860>`_) - Fix a false positive for ``used-before-assignment`` when a name guarded by ``if TYPE_CHECKING:`` is used as a type annotation in a function body and later re-imported in the same scope. - Closes #7882 (`#7882 <https://github.com/PyCQA/pylint/issues/7882>`_) + Closes #7882 (`#7882 <https://github.com/pylint-dev/pylint/issues/7882>`_) - Prevent ``used-before-assignment`` when imports guarded by ``if TYPE_CHECKING`` are guarded again when used. - Closes #7979 (`#7979 <https://github.com/PyCQA/pylint/issues/7979>`_) + Closes #7979 (`#7979 <https://github.com/pylint-dev/pylint/issues/7979>`_) - Fixes false positive for ``try-except-raise`` with multiple exceptions in one except statement if exception are in different namespace. - Closes #8051 (`#8051 <https://github.com/PyCQA/pylint/issues/8051>`_) + Closes #8051 (`#8051 <https://github.com/pylint-dev/pylint/issues/8051>`_) - Fix ``invalid-name`` errors for ``typing_extension.TypeVar``. - Refs #8089 (`#8089 <https://github.com/PyCQA/pylint/issues/8089>`_) + Refs #8089 (`#8089 <https://github.com/pylint-dev/pylint/issues/8089>`_) - Fix ``no-kwoa`` false positive for context managers. - Closes #8100 (`#8100 <https://github.com/PyCQA/pylint/issues/8100>`_) + Closes #8100 (`#8100 <https://github.com/pylint-dev/pylint/issues/8100>`_) - Fix a false positive for ``redefined-variable-type`` when ``async`` methods are present. - Closes #8120 (`#8120 <https://github.com/PyCQA/pylint/issues/8120>`_) + Closes #8120 (`#8120 <https://github.com/pylint-dev/pylint/issues/8120>`_) @@ -466,31 +466,31 @@ False Negatives Fixed - Code following a call to ``quit``, ``exit``, ``sys.exit`` or ``os._exit`` will be marked as `unreachable`. - Refs #519 (`#519 <https://github.com/PyCQA/pylint/issues/519>`_) + Refs #519 (`#519 <https://github.com/pylint-dev/pylint/issues/519>`_) - Emit ``used-before-assignment`` when function arguments are redefined inside an inner function and accessed there before assignment. - Closes #2374 (`#2374 <https://github.com/PyCQA/pylint/issues/2374>`_) + Closes #2374 (`#2374 <https://github.com/pylint-dev/pylint/issues/2374>`_) - Fix a false negative for ``unused-import`` when one module used an import in a type annotation that was also used in another module. - Closes #4150 (`#4150 <https://github.com/PyCQA/pylint/issues/4150>`_) + Closes #4150 (`#4150 <https://github.com/pylint-dev/pylint/issues/4150>`_) - Flag ``superfluous-parens`` if parentheses are used during string concatenation. - Closes #4792 (`#4792 <https://github.com/PyCQA/pylint/issues/4792>`_) + Closes #4792 (`#4792 <https://github.com/pylint-dev/pylint/issues/4792>`_) - Emit ``used-before-assignment`` when relying on names only defined under conditions always testing false. - Closes #4913 (`#4913 <https://github.com/PyCQA/pylint/issues/4913>`_) + Closes #4913 (`#4913 <https://github.com/pylint-dev/pylint/issues/4913>`_) - ``consider-using-join`` can now be emitted for non-empty string separators. - Closes #6639 (`#6639 <https://github.com/PyCQA/pylint/issues/6639>`_) + Closes #6639 (`#6639 <https://github.com/pylint-dev/pylint/issues/6639>`_) - Emit ``used-before-assignment`` for further imports guarded by ``TYPE_CHECKING`` @@ -500,40 +500,40 @@ False Negatives Fixed ``TYPE_CHECKING`` was imported from ``typing`` under an alias. - Closes #7539 (`#7539 <https://github.com/PyCQA/pylint/issues/7539>`_) + Closes #7539 (`#7539 <https://github.com/pylint-dev/pylint/issues/7539>`_) - Fix a false negative for ``unused-import`` when a constant inside ``typing.Annotated`` was treated as a reference to an import. - Closes #7547 (`#7547 <https://github.com/PyCQA/pylint/issues/7547>`_) + Closes #7547 (`#7547 <https://github.com/pylint-dev/pylint/issues/7547>`_) - ``consider-using-any-or-all`` message will now be raised in cases when boolean is initialized, reassigned during loop, and immediately returned. - Closes #7699 (`#7699 <https://github.com/PyCQA/pylint/issues/7699>`_) + Closes #7699 (`#7699 <https://github.com/pylint-dev/pylint/issues/7699>`_) - Extend ``invalid-slice-index`` to emit an warning for invalid slice indices used with string and byte sequences, and range objects. - Refs #7762 (`#7762 <https://github.com/PyCQA/pylint/issues/7762>`_) + Refs #7762 (`#7762 <https://github.com/pylint-dev/pylint/issues/7762>`_) - Fixes ``unnecessary-list-index-lookup`` false negative when ``enumerate`` is called with ``iterable`` as a kwarg. - Closes #7770 (`#7770 <https://github.com/PyCQA/pylint/issues/7770>`_) + Closes #7770 (`#7770 <https://github.com/pylint-dev/pylint/issues/7770>`_) - ``no-else-return`` or ``no-else-raise`` will be emitted if ``except`` block always returns or raises. - Closes #7788 (`#7788 <https://github.com/PyCQA/pylint/issues/7788>`_) + Closes #7788 (`#7788 <https://github.com/pylint-dev/pylint/issues/7788>`_) - Fix ``dangerous-default-value`` false negative when ``*`` is used. - Closes #7818 (`#7818 <https://github.com/PyCQA/pylint/issues/7818>`_) + Closes #7818 (`#7818 <https://github.com/pylint-dev/pylint/issues/7818>`_) - ``consider-using-with`` now triggers for ``pathlib.Path.open``. - Closes #7964 (`#7964 <https://github.com/PyCQA/pylint/issues/7964>`_) + Closes #7964 (`#7964 <https://github.com/pylint-dev/pylint/issues/7964>`_) @@ -542,81 +542,81 @@ Other Bug Fixes - Fix bug in detecting ``unused-variable`` when iterating on variable. - Closes #3044 (`#3044 <https://github.com/PyCQA/pylint/issues/3044>`_) + Closes #3044 (`#3044 <https://github.com/pylint-dev/pylint/issues/3044>`_) - Fix bug in scanning of names inside arguments to ``typing.Literal``. See https://peps.python.org/pep-0586/#literals-enums-and-forward-references for details. - Refs #3299 (`#3299 <https://github.com/PyCQA/pylint/issues/3299>`_) + Refs #3299 (`#3299 <https://github.com/pylint-dev/pylint/issues/3299>`_) - Update ``disallowed-name`` check to flag module-level variables. - Closes #3701 (`#3701 <https://github.com/PyCQA/pylint/issues/3701>`_) + Closes #3701 (`#3701 <https://github.com/pylint-dev/pylint/issues/3701>`_) - Pylint will no longer deadlock if a parallel job is killed but fail immediately instead. - Closes #3899 (`#3899 <https://github.com/PyCQA/pylint/issues/3899>`_) + Closes #3899 (`#3899 <https://github.com/pylint-dev/pylint/issues/3899>`_) - Fix ignored files being linted when passed on stdin. - Closes #4354 (`#4354 <https://github.com/PyCQA/pylint/issues/4354>`_) + Closes #4354 (`#4354 <https://github.com/pylint-dev/pylint/issues/4354>`_) - Fix ``no-member`` false negative when augmented assign is done manually, without ``+=``. - Closes #4562 (`#4562 <https://github.com/PyCQA/pylint/issues/4562>`_) + Closes #4562 (`#4562 <https://github.com/pylint-dev/pylint/issues/4562>`_) - Any assertion on a populated tuple will now receive a ``assert-on-tuple`` warning. - Closes #4655 (`#4655 <https://github.com/PyCQA/pylint/issues/4655>`_) + Closes #4655 (`#4655 <https://github.com/pylint-dev/pylint/issues/4655>`_) - ``missing-return-doc``, ``missing-raises-doc`` and ``missing-yields-doc`` now respect the ``no-docstring-rgx`` option. - Closes #4743 (`#4743 <https://github.com/PyCQA/pylint/issues/4743>`_) + Closes #4743 (`#4743 <https://github.com/pylint-dev/pylint/issues/4743>`_) - Update ``reimported`` help message for clarity. - Closes #4836 (`#4836 <https://github.com/PyCQA/pylint/issues/4836>`_) + Closes #4836 (`#4836 <https://github.com/pylint-dev/pylint/issues/4836>`_) - ``consider-iterating-dictionary`` will no longer be raised if bitwise operations are used. - Closes #5478 (`#5478 <https://github.com/PyCQA/pylint/issues/5478>`_) + Closes #5478 (`#5478 <https://github.com/pylint-dev/pylint/issues/5478>`_) - Using custom braces in ``msg-template`` will now work properly. - Closes #5636 (`#5636 <https://github.com/PyCQA/pylint/issues/5636>`_) + Closes #5636 (`#5636 <https://github.com/pylint-dev/pylint/issues/5636>`_) - Pylint will now filter duplicates given to it before linting. The output should be the same whether a file is given/discovered multiple times or not. - Closes #6242, #4053 (`#6242 <https://github.com/PyCQA/pylint/issues/6242>`_) + Closes #6242, #4053 (`#6242 <https://github.com/pylint-dev/pylint/issues/6242>`_) - Remove ``__index__`` dunder method call from ``unnecessary-dunder-call`` check. - Closes #6795 (`#6795 <https://github.com/PyCQA/pylint/issues/6795>`_) + Closes #6795 (`#6795 <https://github.com/pylint-dev/pylint/issues/6795>`_) - Fixed handling of ``--`` as separator between positional arguments and flags. This was not actually fixed in 2.14.5. Closes #7003, Refs #7096 (`#7003 - <https://github.com/PyCQA/pylint/issues/7003>`_) + <https://github.com/pylint-dev/pylint/issues/7003>`_) - Don't crash on ``OSError`` in config file discovery. - Closes #7169 (`#7169 <https://github.com/PyCQA/pylint/issues/7169>`_) + Closes #7169 (`#7169 <https://github.com/pylint-dev/pylint/issues/7169>`_) - Messages sent to reporter are now copied so a reporter cannot modify the message sent to other reporters. - Closes #7214 (`#7214 <https://github.com/PyCQA/pylint/issues/7214>`_) + Closes #7214 (`#7214 <https://github.com/pylint-dev/pylint/issues/7214>`_) - Fixed a case where custom plugins specified by command line could silently fail. @@ -628,85 +628,85 @@ Other Bug Fixes change, it would silently fail to register the plugin for use, but would load any configuration, which could have unintended effects. - Fixes part of #7264. (`#7264 <https://github.com/PyCQA/pylint/issues/7264>`_) + Fixes part of #7264. (`#7264 <https://github.com/pylint-dev/pylint/issues/7264>`_) - Update ``modified_iterating`` checker to fix a crash with ``for`` loops on empty list. - Closes #7380 (`#7380 <https://github.com/PyCQA/pylint/issues/7380>`_) + Closes #7380 (`#7380 <https://github.com/pylint-dev/pylint/issues/7380>`_) - Update wording for ``arguments-differ`` and ``arguments-renamed`` to clarify overriding object. - Closes #7390 (`#7390 <https://github.com/PyCQA/pylint/issues/7390>`_) + Closes #7390 (`#7390 <https://github.com/pylint-dev/pylint/issues/7390>`_) - ``disable-next`` is now correctly scoped to only the succeeding line. - Closes #7401 (`#7401 <https://github.com/PyCQA/pylint/issues/7401>`_) + Closes #7401 (`#7401 <https://github.com/pylint-dev/pylint/issues/7401>`_) - Fixed a crash in the ``unhashable-member`` checker when using a ``lambda`` as a dict key. - Closes #7453 (`#7453 <https://github.com/PyCQA/pylint/issues/7453>`_) + Closes #7453 (`#7453 <https://github.com/pylint-dev/pylint/issues/7453>`_) - Add ``mailcap`` to deprecated modules list. - Closes #7457 (`#7457 <https://github.com/PyCQA/pylint/issues/7457>`_) + Closes #7457 (`#7457 <https://github.com/pylint-dev/pylint/issues/7457>`_) - Fix a crash in the ``modified-iterating-dict`` checker involving instance attributes. - Closes #7461 (`#7461 <https://github.com/PyCQA/pylint/issues/7461>`_) + Closes #7461 (`#7461 <https://github.com/pylint-dev/pylint/issues/7461>`_) - ``invalid-class-object`` does not crash anymore when ``__class__`` is assigned alongside another variable. - Closes #7467 (`#7467 <https://github.com/PyCQA/pylint/issues/7467>`_) + Closes #7467 (`#7467 <https://github.com/pylint-dev/pylint/issues/7467>`_) - ``--help-msg`` now accepts a comma-separated list of message IDs again. - Closes #7471 (`#7471 <https://github.com/PyCQA/pylint/issues/7471>`_) + Closes #7471 (`#7471 <https://github.com/pylint-dev/pylint/issues/7471>`_) - Allow specifying non-builtin exceptions in the ``overgeneral-exception`` option using an exception's qualified name. - Closes #7495 (`#7495 <https://github.com/PyCQA/pylint/issues/7495>`_) + Closes #7495 (`#7495 <https://github.com/pylint-dev/pylint/issues/7495>`_) - Report ``no-self-argument`` rather than ``no-method-argument`` for methods with variadic arguments. - Closes #7507 (`#7507 <https://github.com/PyCQA/pylint/issues/7507>`_) + Closes #7507 (`#7507 <https://github.com/pylint-dev/pylint/issues/7507>`_) - Fixed an issue where ``syntax-error`` couldn't be raised on files with invalid encodings. - Closes #7522 (`#7522 <https://github.com/PyCQA/pylint/issues/7522>`_) + Closes #7522 (`#7522 <https://github.com/pylint-dev/pylint/issues/7522>`_) - Fix false positive for ``redefined-outer-name`` when aliasing ``typing`` e.g. as ``t`` and guarding imports under ``t.TYPE_CHECKING``. - Closes #7524 (`#7524 <https://github.com/PyCQA/pylint/issues/7524>`_) + Closes #7524 (`#7524 <https://github.com/pylint-dev/pylint/issues/7524>`_) - Fixed a crash of the ``modified_iterating`` checker when iterating on a set defined as a class attribute. - Closes #7528 (`#7528 <https://github.com/PyCQA/pylint/issues/7528>`_) + Closes #7528 (`#7528 <https://github.com/pylint-dev/pylint/issues/7528>`_) - Use ``py-version`` to determine if a message should be emitted for messages defined with ``max-version`` or ``min-version``. - Closes #7569 (`#7569 <https://github.com/PyCQA/pylint/issues/7569>`_) + Closes #7569 (`#7569 <https://github.com/pylint-dev/pylint/issues/7569>`_) - Improve ``bad-thread-instantiation`` check to warn if ``target`` is not passed in as a keyword argument or as a second argument. - Closes #7570 (`#7570 <https://github.com/PyCQA/pylint/issues/7570>`_) + Closes #7570 (`#7570 <https://github.com/pylint-dev/pylint/issues/7570>`_) - Fixes edge case of custom method named ``next`` raised an astroid error. - Closes #7610 (`#7610 <https://github.com/PyCQA/pylint/issues/7610>`_) + Closes #7610 (`#7610 <https://github.com/pylint-dev/pylint/issues/7610>`_) - Fixed a multi-processing crash that prevents using any more than 1 thread on MacOS. @@ -717,56 +717,56 @@ Other Bug Fixes when attempting to serialise the linter object for multi-processing use. - Closes #7635. (`#7635 <https://github.com/PyCQA/pylint/issues/7635>`_) + Closes #7635. (`#7635 <https://github.com/pylint-dev/pylint/issues/7635>`_) - Fix crash that happened when parsing files with unexpected encoding starting with 'utf' like ``utf13``. - Closes #7661 (`#7661 <https://github.com/PyCQA/pylint/issues/7661>`_) + Closes #7661 (`#7661 <https://github.com/pylint-dev/pylint/issues/7661>`_) - Fix a crash when a child class with an ``__init__`` method inherits from a parent class with an ``__init__`` class attribute. - Closes #7742 (`#7742 <https://github.com/PyCQA/pylint/issues/7742>`_) + Closes #7742 (`#7742 <https://github.com/pylint-dev/pylint/issues/7742>`_) - Fix ``valid-metaclass-classmethod-first-arg`` default config value from "cls" to "mcs" which would cause both a false-positive and false-negative. - Closes #7782 (`#7782 <https://github.com/PyCQA/pylint/issues/7782>`_) + Closes #7782 (`#7782 <https://github.com/pylint-dev/pylint/issues/7782>`_) - Fixes a crash in the ``unnecessary_list_index_lookup`` check when using ``enumerate`` with ``start`` and a class attribute. - Closes #7821 (`#7821 <https://github.com/PyCQA/pylint/issues/7821>`_) + Closes #7821 (`#7821 <https://github.com/pylint-dev/pylint/issues/7821>`_) - Fixes a crash in ``stop-iteration-return`` when the ``next`` builtin is called without arguments. - Closes #7828 (`#7828 <https://github.com/PyCQA/pylint/issues/7828>`_) + Closes #7828 (`#7828 <https://github.com/pylint-dev/pylint/issues/7828>`_) - When pylint exit due to bad arguments being provided the exit code will now be the expected ``32``. - Refs #7931 (`#7931 <https://github.com/PyCQA/pylint/issues/7931>`_) + Refs #7931 (`#7931 <https://github.com/pylint-dev/pylint/issues/7931>`_) - Fixes a ``ModuleNotFound`` exception when running pylint on a Django project with the ``pylint_django`` plugin enabled. - Closes #7938 (`#7938 <https://github.com/PyCQA/pylint/issues/7938>`_) + Closes #7938 (`#7938 <https://github.com/pylint-dev/pylint/issues/7938>`_) - Fixed a crash when inferring a value and using its qname on a slice that was being incorrectly called. - Closes #8067 (`#8067 <https://github.com/PyCQA/pylint/issues/8067>`_) + Closes #8067 (`#8067 <https://github.com/pylint-dev/pylint/issues/8067>`_) - Use better regex to check for private attributes. - Refs #8081 (`#8081 <https://github.com/PyCQA/pylint/issues/8081>`_) + Refs #8081 (`#8081 <https://github.com/pylint-dev/pylint/issues/8081>`_) - Fix issue with new typing Union syntax in runtime context for Python 3.10+. - Closes #8119 (`#8119 <https://github.com/PyCQA/pylint/issues/8119>`_) + Closes #8119 (`#8119 <https://github.com/pylint-dev/pylint/issues/8119>`_) @@ -775,55 +775,55 @@ Other Changes - Pylint now provides basic support for Python 3.11. - Closes #5920 (`#5920 <https://github.com/PyCQA/pylint/issues/5920>`_) + Closes #5920 (`#5920 <https://github.com/pylint-dev/pylint/issues/5920>`_) - Update message for ``abstract-method`` to include child class name. - Closes #7124 (`#7124 <https://github.com/PyCQA/pylint/issues/7124>`_) + Closes #7124 (`#7124 <https://github.com/pylint-dev/pylint/issues/7124>`_) - Update Pyreverse's dot and plantuml printers to detect when class methods are abstract and show them with italic font. For the dot printer update the label to use html-like syntax. - Closes #7346 (`#7346 <https://github.com/PyCQA/pylint/issues/7346>`_) + Closes #7346 (`#7346 <https://github.com/pylint-dev/pylint/issues/7346>`_) - The ``docparams`` extension now considers typing in Numpy style docstrings as "documentation" for the ``missing-param-doc`` message. - Refs #7398 (`#7398 <https://github.com/PyCQA/pylint/issues/7398>`_) + Refs #7398 (`#7398 <https://github.com/pylint-dev/pylint/issues/7398>`_) - Relevant ``DeprecationWarnings`` are now raised with ``stacklevel=2``, so they have the callsite attached in the message. - Closes #7463 (`#7463 <https://github.com/PyCQA/pylint/issues/7463>`_) + Closes #7463 (`#7463 <https://github.com/pylint-dev/pylint/issues/7463>`_) - Add a ``minimal`` option to ``pylint-config`` and its toml generator. - Closes #7485 (`#7485 <https://github.com/PyCQA/pylint/issues/7485>`_) + Closes #7485 (`#7485 <https://github.com/pylint-dev/pylint/issues/7485>`_) - Add method name to the error messages of ``no-method-argument`` and ``no-self-argument``. - Closes #7507 (`#7507 <https://github.com/PyCQA/pylint/issues/7507>`_) + Closes #7507 (`#7507 <https://github.com/pylint-dev/pylint/issues/7507>`_) - Prevent leaving the pip install cache in the Docker image. - Refs #7544 (`#7544 <https://github.com/PyCQA/pylint/issues/7544>`_) + Refs #7544 (`#7544 <https://github.com/pylint-dev/pylint/issues/7544>`_) - Add a keyword-only ``compare_constants`` argument to ``safe_infer``. - Refs #7626 (`#7626 <https://github.com/PyCQA/pylint/issues/7626>`_) + Refs #7626 (`#7626 <https://github.com/pylint-dev/pylint/issues/7626>`_) - Add ``default_enabled`` option to optional message dict. Provides an option to disable a checker message by default. To use a disabled message, the user must enable it explicitly by adding the message to the ``enable`` option. - Refs #7629 (`#7629 <https://github.com/PyCQA/pylint/issues/7629>`_) + Refs #7629 (`#7629 <https://github.com/pylint-dev/pylint/issues/7629>`_) - Sort ``--generated-rcfile`` output. - Refs #7655 (`#7655 <https://github.com/PyCQA/pylint/issues/7655>`_) + Refs #7655 (`#7655 <https://github.com/pylint-dev/pylint/issues/7655>`_) - epylint is now deprecated and will be removed in pylint 3.0.0. All emacs and flymake related @@ -831,11 +831,11 @@ Other Changes repository : https://github.com/emacsorphanage/pylint. - Closes #7737 (`#7737 <https://github.com/PyCQA/pylint/issues/7737>`_) + Closes #7737 (`#7737 <https://github.com/pylint-dev/pylint/issues/7737>`_) - Adds test for existing preferred-modules configuration functionality. - Refs #7957 (`#7957 <https://github.com/PyCQA/pylint/issues/7957>`_) + Refs #7957 (`#7957 <https://github.com/pylint-dev/pylint/issues/7957>`_) @@ -850,4 +850,4 @@ Internal Changes the path in this way, this is now the last bit of work needed to close Github issue #7264. - Closes #7264 (`#7264 <https://github.com/PyCQA/pylint/issues/7264>`_) + Closes #7264 (`#7264 <https://github.com/pylint-dev/pylint/issues/7264>`_) diff --git a/doc/whatsnew/2/2.17/index.rst b/doc/whatsnew/2/2.17/index.rst index 974ebb501..f8395c30f 100644 --- a/doc/whatsnew/2/2.17/index.rst +++ b/doc/whatsnew/2/2.17/index.rst @@ -135,7 +135,7 @@ False Positives Fixed ``attribute-defined-outside-init`` warning when using ``unittest.IsolatedAsyncioTestCase``. - Refs #8403 (`#8403 <https://github.com/PyCQA/pylint/issues/8403>`_) + Refs #8403 (`#8403 <https://github.com/pylint-dev/pylint/issues/8403>`_) @@ -145,16 +145,16 @@ Other Bug Fixes - ``--clear-cache-post-run`` now also clears LRU caches for pylint utilities holding references to AST nodes. - Closes #8361 (`#8361 <https://github.com/PyCQA/pylint/issues/8361>`_) + Closes #8361 (`#8361 <https://github.com/pylint-dev/pylint/issues/8361>`_) - Fix a crash when ``TYPE_CHECKING`` is used without importing it. - Closes #8434 (`#8434 <https://github.com/PyCQA/pylint/issues/8434>`_) + Closes #8434 (`#8434 <https://github.com/pylint-dev/pylint/issues/8434>`_) - Fix a regression of ``preferred-modules`` where a partial match was used instead of the required full match. - Closes #8453 (`#8453 <https://github.com/PyCQA/pylint/issues/8453>`_) + Closes #8453 (`#8453 <https://github.com/pylint-dev/pylint/issues/8453>`_) @@ -172,7 +172,7 @@ Internal Changes ``is_sys_guard`` is still available, which was part of ``is_node_in_guarded_import_block``. - Refs #8433 (`#8433 <https://github.com/PyCQA/pylint/issues/8433>`_) + Refs #8433 (`#8433 <https://github.com/pylint-dev/pylint/issues/8433>`_) What's new in Pylint 2.17.0? @@ -186,42 +186,42 @@ New Features - `pyreverse` now supports custom color palettes with the `--color-palette` option. - Closes #6738 (`#6738 <https://github.com/PyCQA/pylint/issues/6738>`_) + Closes #6738 (`#6738 <https://github.com/pylint-dev/pylint/issues/6738>`_) - Add ``invalid-name`` check for ``TypeAlias`` names. - Closes #7081. (`#7081 <https://github.com/PyCQA/pylint/issues/7081>`_) + Closes #7081. (`#7081 <https://github.com/pylint-dev/pylint/issues/7081>`_) - Accept values of the form ``<class name>.<attribute name>`` for the ``exclude-protected`` list. - Closes #7343 (`#7343 <https://github.com/PyCQA/pylint/issues/7343>`_) + Closes #7343 (`#7343 <https://github.com/pylint-dev/pylint/issues/7343>`_) - Add `--version` option to `pyreverse`. - Refs #7851 (`#7851 <https://github.com/PyCQA/pylint/issues/7851>`_) + Refs #7851 (`#7851 <https://github.com/pylint-dev/pylint/issues/7851>`_) - Adds new functionality with preferred-modules configuration to detect submodules. - Refs #7957 (`#7957 <https://github.com/PyCQA/pylint/issues/7957>`_) + Refs #7957 (`#7957 <https://github.com/pylint-dev/pylint/issues/7957>`_) - Support implicit namespace packages (PEP 420). - Closes #8154 (`#8154 <https://github.com/PyCQA/pylint/issues/8154>`_) + Closes #8154 (`#8154 <https://github.com/pylint-dev/pylint/issues/8154>`_) - Add globbing pattern support for ``--source-roots``. - Closes #8290 (`#8290 <https://github.com/PyCQA/pylint/issues/8290>`_) + Closes #8290 (`#8290 <https://github.com/pylint-dev/pylint/issues/8290>`_) - Support globbing pattern when defining which file/directory/module to lint. - Closes #8310 (`#8310 <https://github.com/PyCQA/pylint/issues/8310>`_) + Closes #8310 (`#8310 <https://github.com/pylint-dev/pylint/issues/8310>`_) - pylint now supports ``TryStar`` nodes from Python 3.11 and should be fully compatible with Python 3.11. - Closes #8387 (`#8387 <https://github.com/PyCQA/pylint/issues/8387>`_) + Closes #8387 (`#8387 <https://github.com/pylint-dev/pylint/issues/8387>`_) @@ -232,13 +232,13 @@ New Checks there is a chained comparison where one expression is semantically incompatible with the other. - Closes #6559 (`#6559 <https://github.com/PyCQA/pylint/issues/6559>`_) + Closes #6559 (`#6559 <https://github.com/pylint-dev/pylint/issues/6559>`_) - Adds an ``implicit-flag-alias`` check that emits a warning when a class derived from ``enum.IntFlag`` assigns distinct integer values that share common bit positions. - Refs #8102 (`#8102 <https://github.com/PyCQA/pylint/issues/8102>`_) + Refs #8102 (`#8102 <https://github.com/pylint-dev/pylint/issues/8102>`_) @@ -248,27 +248,27 @@ False Positives Fixed - Fix various false positives for functions that return directly from structural pattern matching cases. - Closes #5288 (`#5288 <https://github.com/PyCQA/pylint/issues/5288>`_) + Closes #5288 (`#5288 <https://github.com/pylint-dev/pylint/issues/5288>`_) - Fix false positive for ``used-before-assignment`` when ``typing.TYPE_CHECKING`` is used with if/elif/else blocks. - Closes #7574 (`#7574 <https://github.com/PyCQA/pylint/issues/7574>`_) + Closes #7574 (`#7574 <https://github.com/pylint-dev/pylint/issues/7574>`_) - Fix false positive for isinstance-second-argument-not-valid-type with union types. - Closes #8205 (`#8205 <https://github.com/PyCQA/pylint/issues/8205>`_) + Closes #8205 (`#8205 <https://github.com/pylint-dev/pylint/issues/8205>`_) - Fix false positive for ``used-before-assignment`` for named expressions appearing after the first element in a list, tuple, or set. - Closes #8252 (`#8252 <https://github.com/PyCQA/pylint/issues/8252>`_) + Closes #8252 (`#8252 <https://github.com/pylint-dev/pylint/issues/8252>`_) - Fix false positive for ``wrong-spelling-in-comment`` with class names in a python 2 type comment. - Closes #8370 (`#8370 <https://github.com/PyCQA/pylint/issues/8370>`_) + Closes #8370 (`#8370 <https://github.com/pylint-dev/pylint/issues/8370>`_) @@ -281,11 +281,11 @@ False Negatives Fixed raise correctly. - Refs #8185 (`#8185 <https://github.com/PyCQA/pylint/issues/8185>`_) + Refs #8185 (`#8185 <https://github.com/pylint-dev/pylint/issues/8185>`_) - Fix false negative for inconsistent-returns with while-loops. - Closes #8280 (`#8280 <https://github.com/PyCQA/pylint/issues/8280>`_) + Closes #8280 (`#8280 <https://github.com/pylint-dev/pylint/issues/8280>`_) @@ -295,33 +295,33 @@ Other Bug Fixes - Fix ``used-before-assignment`` false positive when the walrus operator is used with a ternary operator in dictionary key/value initialization. - Closes #8125 (`#8125 <https://github.com/PyCQA/pylint/issues/8125>`_) + Closes #8125 (`#8125 <https://github.com/pylint-dev/pylint/issues/8125>`_) - Fix ``no-name-in-module`` false positive raised when a package defines a variable with the same name as one of its submodules. - Closes #8148 (`#8148 <https://github.com/PyCQA/pylint/issues/8148>`_) + Closes #8148 (`#8148 <https://github.com/pylint-dev/pylint/issues/8148>`_) - Fix a crash happening for python interpreter < 3.9 following a failed typing update. - Closes #8161 (`#8161 <https://github.com/PyCQA/pylint/issues/8161>`_) + Closes #8161 (`#8161 <https://github.com/pylint-dev/pylint/issues/8161>`_) - Fix ``nested-min-max`` suggestion message to indicate it's possible to splat iterable objects. - Closes #8168 (`#8168 <https://github.com/PyCQA/pylint/issues/8168>`_) + Closes #8168 (`#8168 <https://github.com/pylint-dev/pylint/issues/8168>`_) - Fix a crash happening when a class attribute was negated in the start argument of an enumerate. - Closes #8207 (`#8207 <https://github.com/PyCQA/pylint/issues/8207>`_) + Closes #8207 (`#8207 <https://github.com/pylint-dev/pylint/issues/8207>`_) - Prevent emitting ``invalid-name`` for the line on which a ``global`` statement is declared. - Closes #8307 (`#8307 <https://github.com/PyCQA/pylint/issues/8307>`_) + Closes #8307 (`#8307 <https://github.com/pylint-dev/pylint/issues/8307>`_) @@ -330,7 +330,7 @@ Other Changes - Update explanation for ``global-variable-not-assigned`` and add confidence. - Closes #5073 (`#5073 <https://github.com/PyCQA/pylint/issues/5073>`_) + Closes #5073 (`#5073 <https://github.com/pylint-dev/pylint/issues/5073>`_) - The governance model and the path to become a maintainer have been documented as @@ -338,4 +338,4 @@ Other Changes pylint is included is secure. - Refs #8329 (`#8329 <https://github.com/PyCQA/pylint/issues/8329>`_) + Refs #8329 (`#8329 <https://github.com/pylint-dev/pylint/issues/8329>`_) diff --git a/doc/whatsnew/2/2.3/full.rst b/doc/whatsnew/2/2.3/full.rst index d55021275..947eedbac 100644 --- a/doc/whatsnew/2/2.3/full.rst +++ b/doc/whatsnew/2/2.3/full.rst @@ -13,7 +13,7 @@ Release date: 2019-02-27 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 + Closes pylint-dev/astroid#644 * Added a new command line option ``list-groups`` for listing all the check groups ``pylint`` knows about. diff --git a/doc/whatsnew/2/2.9/full.rst b/doc/whatsnew/2/2.9/full.rst index 5518f5464..417943e93 100644 --- a/doc/whatsnew/2/2.9/full.rst +++ b/doc/whatsnew/2/2.9/full.rst @@ -304,12 +304,12 @@ Release date: 2021-06-29 * Fix false-positive ``no-member`` with generic base class - Closes PyCQA/astroid#942 + Closes pylint-dev/astroid#942 * Fix ``assigning-non-slot`` false-positive with base that inherits from ``typing.Generic`` Closes #4509 - Closes PyCQA/astroid#999 + Closes pylint-dev/astroid#999 * New checker ``invalid-all-format``. Emitted when ``__all__`` has an invalid format, i.e. isn't a ``tuple`` or ``list``. diff --git a/doc/whatsnew/3/3.0/index.rst b/doc/whatsnew/3/3.0/index.rst new file mode 100644 index 000000000..8e0f6f7cc --- /dev/null +++ b/doc/whatsnew/3/3.0/index.rst @@ -0,0 +1,18 @@ +************************* + What's New in Pylint 3.0 +************************* + +.. toctree:: + :maxdepth: 2 + +:Release: 3.0.0 +:Date: TBA + + +Summary -- Release highlights +============================= + +In 3.0.0... + + +.. towncrier release notes start diff --git a/doc/whatsnew/3/index.rst b/doc/whatsnew/3/index.rst new file mode 100644 index 000000000..ff4aaf3dc --- /dev/null +++ b/doc/whatsnew/3/index.rst @@ -0,0 +1,7 @@ +3.x +=== + +.. toctree:: + :maxdepth: 2 + + 3.0/index diff --git a/doc/whatsnew/fragments/1954.performance b/doc/whatsnew/fragments/1954.performance new file mode 100644 index 000000000..aa065f0d1 --- /dev/null +++ b/doc/whatsnew/fragments/1954.performance @@ -0,0 +1,4 @@ +- Optimize `is_trailing_comma()`. +- Cache `class_is_abstract()`. + +Refs #1954 diff --git a/doc/whatsnew/fragments/3670.false_positive b/doc/whatsnew/fragments/3670.false_positive new file mode 100644 index 000000000..562a41de2 --- /dev/null +++ b/doc/whatsnew/fragments/3670.false_positive @@ -0,0 +1,3 @@ +Fix `unused-argument` false positive when `__new__` does not use all the arguments of `__init__`. + +Closes #3670 diff --git a/doc/whatsnew/fragments/5488.other b/doc/whatsnew/fragments/5488.other new file mode 100644 index 000000000..0f6ac5b85 --- /dev/null +++ b/doc/whatsnew/fragments/5488.other @@ -0,0 +1,3 @@ +Pylint now exposes its type annotations. + +Closes #5488 and #2079 diff --git a/doc/whatsnew/fragments/7506.false_positive b/doc/whatsnew/fragments/7506.false_positive new file mode 100644 index 000000000..c6424e1f2 --- /dev/null +++ b/doc/whatsnew/fragments/7506.false_positive @@ -0,0 +1,3 @@ +Fix ``unused-import`` false positive for usage of ``six.with_metaclass``. + +Closes #7506 diff --git a/doc/whatsnew/fragments/7578.bugfix b/doc/whatsnew/fragments/7578.bugfix new file mode 100644 index 000000000..2b01149ca --- /dev/null +++ b/doc/whatsnew/fragments/7578.bugfix @@ -0,0 +1,3 @@ +The ``ignored-modules`` option will now be correctly taken into account for ``no-name-in-module``. + +Closes #7578 diff --git a/doc/whatsnew/fragments/7737.user_action b/doc/whatsnew/fragments/7737.user_action new file mode 100644 index 000000000..1a992f563 --- /dev/null +++ b/doc/whatsnew/fragments/7737.user_action @@ -0,0 +1,3 @@ +epylint was removed. It now lives at: https://github.com/emacsorphanage/pylint. + +Refs #7737 diff --git a/doc/whatsnew/fragments/8167.false_positive b/doc/whatsnew/fragments/8167.false_positive new file mode 100644 index 000000000..e0c341f65 --- /dev/null +++ b/doc/whatsnew/fragments/8167.false_positive @@ -0,0 +1,4 @@ +Fix false positive for ``used-before-assignment`` when usage and assignment +are guarded by the same test in different statements. + +Closes #8167 diff --git a/doc/whatsnew/fragments/8181.feature b/doc/whatsnew/fragments/8181.feature new file mode 100644 index 000000000..cd5b361d1 --- /dev/null +++ b/doc/whatsnew/fragments/8181.feature @@ -0,0 +1,5 @@ +Add new option (``--show-stdlib``, ``-L``) to ``pyreverse``. +This is similar to the behavior of ``--show-builtin`` in that standard library +modules are now not included by default, and this option will include them. + +Closes #8181 diff --git a/doc/whatsnew/fragments/8198.bugfix b/doc/whatsnew/fragments/8198.bugfix new file mode 100644 index 000000000..61b4028ce --- /dev/null +++ b/doc/whatsnew/fragments/8198.bugfix @@ -0,0 +1,4 @@ +Fix ``used-before-assignment`` false negative when TYPE_CHECKING imports +are used in multiple scopes. + +Closes #8198 diff --git a/doc/whatsnew/fragments/8251.breaking b/doc/whatsnew/fragments/8251.breaking new file mode 100644 index 000000000..5410c9a98 --- /dev/null +++ b/doc/whatsnew/fragments/8251.breaking @@ -0,0 +1,5 @@ +`pyreverse` now uses a new default color palette that is more colorblind friendly. +The color scheme is taken from `Paul Tol's Notes <https://personal.sron.nl/~pault/>`_. +If you prefer other colors, you can use the `--color-palette` option to specify custom colors. + +Closes #8251 diff --git a/doc/whatsnew/fragments/8361.bugfix b/doc/whatsnew/fragments/8361.bugfix new file mode 100644 index 000000000..0f2b56707 --- /dev/null +++ b/doc/whatsnew/fragments/8361.bugfix @@ -0,0 +1,4 @@ +``--clear-cache-post-run`` now also clears LRU caches for pylint utilities +holding references to AST nodes. + +Closes #8361 diff --git a/doc/whatsnew/fragments/8401.internal b/doc/whatsnew/fragments/8401.internal new file mode 100644 index 000000000..9f4f92740 --- /dev/null +++ b/doc/whatsnew/fragments/8401.internal @@ -0,0 +1,4 @@ +``get_message_definition`` was removed from the base checker API. You can access +message definitions through the ``MessageStore``. + +Refs #8401 diff --git a/doc/whatsnew/fragments/8403.false_positive b/doc/whatsnew/fragments/8403.false_positive new file mode 100644 index 000000000..bfa34d17d --- /dev/null +++ b/doc/whatsnew/fragments/8403.false_positive @@ -0,0 +1,5 @@ +Adds ``asyncSetUp`` to the default ``defining-attr-methods`` list to silence +``attribute-defined-outside-init`` warning when using +``unittest.IsolatedAsyncioTestCase``. + +Refs #8403 diff --git a/doc/whatsnew/fragments/8404.breaking b/doc/whatsnew/fragments/8404.breaking new file mode 100644 index 000000000..eb99510eb --- /dev/null +++ b/doc/whatsnew/fragments/8404.breaking @@ -0,0 +1,7 @@ +Everything related to the ``__implements__`` construct was removed. It was based on PEP245 +that was proposed in 2001 and rejected in 2006. + +The capability from pyreverse to take ``__implements__`` into account when generating diagrams +was also removed. + +Refs #8404 diff --git a/doc/whatsnew/fragments/8404.internal b/doc/whatsnew/fragments/8404.internal new file mode 100644 index 000000000..1a6da408a --- /dev/null +++ b/doc/whatsnew/fragments/8404.internal @@ -0,0 +1,8 @@ +Everything related to the ``__implements__`` construct was removed. It was based on PEP245 +that was proposed in 2001 and rejected in 2006. + +All the classes inheriting ``Interface`` in ``pylint.interfaces`` were removed. +``Checker`` should only inherit ``BaseChecker`` or any of the other checker types +from ``pylint.checkers``. ``Reporter`` should only inherit ``BaseReporter``. + +Refs #8404 diff --git a/doc/whatsnew/fragments/8405.other b/doc/whatsnew/fragments/8405.other new file mode 100644 index 000000000..423e50611 --- /dev/null +++ b/doc/whatsnew/fragments/8405.other @@ -0,0 +1,3 @@ +All code related to the optparse config parsing has been removed. + +Refs #8405 diff --git a/doc/whatsnew/fragments/8407.internal b/doc/whatsnew/fragments/8407.internal new file mode 100644 index 000000000..bb96c2f5d --- /dev/null +++ b/doc/whatsnew/fragments/8407.internal @@ -0,0 +1,5 @@ +``modname`` and ``msg_store`` are now required to be given in ``FileState``. +``collect_block_lines`` has also been removed. ``Pylinter.current_name`` +cannot be null anymore. + +Refs #8407 diff --git a/doc/whatsnew/fragments/8408.internal b/doc/whatsnew/fragments/8408.internal new file mode 100644 index 000000000..697a7ee50 --- /dev/null +++ b/doc/whatsnew/fragments/8408.internal @@ -0,0 +1,3 @@ +'Reporter.set_output' was removed in favor of 'reporter.out = stream'. + +Refs #8408 diff --git a/doc/whatsnew/fragments/8409.internal b/doc/whatsnew/fragments/8409.internal new file mode 100644 index 000000000..415dec9cf --- /dev/null +++ b/doc/whatsnew/fragments/8409.internal @@ -0,0 +1,24 @@ +A number of old utility functions and classes have been removed: + +``MapReduceMixin``: To make a checker reduce map data simply implement +``get_map_data`` and ``reduce_map_data``. + +``is_inside_lambda``: Use ``utils.get_node_first_ancestor_of_type(x, nodes.Lambda)`` + +``check_messages``: Use ``utils.only_required_for_messages`` + +``is_class_subscriptable_pep585_with_postponed_evaluation_enabled``: Use +``is_postponed_evaluation_enabled(node)`` and ``is_node_in_type_annotation_context(node)`` + +``get_python_path``: assumption that there's always an __init__.py is not true since +python 3.3 and is causing problems, particularly with PEP 420. Use ``discover_package_path`` +and pass source root(s). + +``fix_import_path``: Use ``augmented_sys_path`` and pass additional ``sys.path`` +entries as an argument obtained from ``discover_package_path``. + +``get_global_option``: Use ``checker.linter.config`` to get all global options. + +Related private objects have been removed as well. + +Refs #8409 diff --git a/doc/whatsnew/fragments/8410.false_positive b/doc/whatsnew/fragments/8410.false_positive new file mode 100644 index 000000000..264542a7d --- /dev/null +++ b/doc/whatsnew/fragments/8410.false_positive @@ -0,0 +1,3 @@ +`logging-not-lazy` is not longer emitted for explicitly concatenated string arguments. + +Closes #8410 diff --git a/doc/whatsnew/fragments/8411.user_action b/doc/whatsnew/fragments/8411.user_action new file mode 100644 index 000000000..42f9c502a --- /dev/null +++ b/doc/whatsnew/fragments/8411.user_action @@ -0,0 +1,7 @@ +The 'overgeneral-exceptions' option now only takes fully qualified name +into account (``builtins.Exception`` not ``Exception``). If you overrode +this option, you need to use the fully qualified name now. + +There's still a warning, but it will be removed in 3.1.0. + +Refs #8411 diff --git a/doc/whatsnew/fragments/8412.internal b/doc/whatsnew/fragments/8412.internal new file mode 100644 index 000000000..ef12ebd18 --- /dev/null +++ b/doc/whatsnew/fragments/8412.internal @@ -0,0 +1,3 @@ +``colorize_ansi`` now only accept a ``MessageStyle`` object. + +Refs #8412 diff --git a/doc/whatsnew/fragments/8416.breaking b/doc/whatsnew/fragments/8416.breaking new file mode 100644 index 000000000..7984da1b1 --- /dev/null +++ b/doc/whatsnew/fragments/8416.breaking @@ -0,0 +1,3 @@ +``pyreverse``: Support for the ``.vcg`` output format (Visualaization of Compiler Graphs) has been dropped. + +Closes #8416 diff --git a/doc/whatsnew/fragments/8424.false_positive b/doc/whatsnew/fragments/8424.false_positive new file mode 100644 index 000000000..22dc8b844 --- /dev/null +++ b/doc/whatsnew/fragments/8424.false_positive @@ -0,0 +1,3 @@ +Fix false positive for isinstance-second-argument-not-valid-type when union types contains None. + +Closes #8424 diff --git a/doc/whatsnew/fragments/8433.internal b/doc/whatsnew/fragments/8433.internal new file mode 100644 index 000000000..4bc20c493 --- /dev/null +++ b/doc/whatsnew/fragments/8433.internal @@ -0,0 +1,10 @@ +The following utilities are deprecated in favor of the more robust ``in_type_checking_block`` +and will be removed in pylint 3.0: + + - ``is_node_in_guarded_import_block`` + - ``is_node_in_typing_guarded_import_block`` + - ``is_typing_guard`` + +``is_sys_guard`` is still available, which was part of ``is_node_in_guarded_import_block``. + +Refs #8433 diff --git a/doc/whatsnew/fragments/8434.bugfix b/doc/whatsnew/fragments/8434.bugfix new file mode 100644 index 000000000..b5a8bddcb --- /dev/null +++ b/doc/whatsnew/fragments/8434.bugfix @@ -0,0 +1,3 @@ +Fix a crash when ``TYPE_CHECKING`` is used without importing it. + +Closes #8434 diff --git a/doc/whatsnew/fragments/8437.bugfix b/doc/whatsnew/fragments/8437.bugfix new file mode 100644 index 000000000..c1727f950 --- /dev/null +++ b/doc/whatsnew/fragments/8437.bugfix @@ -0,0 +1,4 @@ +Fix a ``used-before-assignment`` false positive when imports +are made under the ``TYPE_CHECKING`` else if branch. + +Closes #8437 diff --git a/doc/whatsnew/fragments/8453.bugfix b/doc/whatsnew/fragments/8453.bugfix new file mode 100644 index 000000000..6bec2b0b9 --- /dev/null +++ b/doc/whatsnew/fragments/8453.bugfix @@ -0,0 +1,3 @@ +Fix a regression of ``preferred-modules`` where a partial match was used instead of the required full match. + +Closes #8453 diff --git a/doc/whatsnew/fragments/8462.breaking b/doc/whatsnew/fragments/8462.breaking new file mode 100644 index 000000000..c794235c0 --- /dev/null +++ b/doc/whatsnew/fragments/8462.breaking @@ -0,0 +1,5 @@ +The warning when the now useless old pylint cache directory (pylint.d) was +found was removed. The cache dir is documented in +[the FAQ](https://pylint.readthedocs.io/en/latest/faq.html#where-is-the-persistent-data-stored-to-compare-between-successive-runs). + +Refs #8462 diff --git a/doc/whatsnew/fragments/8463.internal b/doc/whatsnew/fragments/8463.internal new file mode 100644 index 000000000..de5df2520 --- /dev/null +++ b/doc/whatsnew/fragments/8463.internal @@ -0,0 +1,3 @@ +Following a deprecation period, ``Pylinter.check`` now only work with sequences of strings, not strings. + +Refs #8463 diff --git a/doc/whatsnew/fragments/8464.internal b/doc/whatsnew/fragments/8464.internal new file mode 100644 index 000000000..4b4109c7b --- /dev/null +++ b/doc/whatsnew/fragments/8464.internal @@ -0,0 +1,3 @@ +Following a deprecation period, ``ColorizedTextReporter`` only accepts ``ColorMappingDict``. + +Refs #8464 diff --git a/doc/whatsnew/fragments/8465.user_action b/doc/whatsnew/fragments/8465.user_action new file mode 100644 index 000000000..b5d802a93 --- /dev/null +++ b/doc/whatsnew/fragments/8465.user_action @@ -0,0 +1,5 @@ +Following a deprecation period, it's no longer possible to use ``MASTER`` +or ``master`` as configuration section in ``setup.cfg`` or ``tox.ini``. It's bad practice +to not start sections titles with the tool name. Please use ``pylint.main`` instead. + +Refs #8465 diff --git a/doc/whatsnew/fragments/8466.internal b/doc/whatsnew/fragments/8466.internal new file mode 100644 index 000000000..101a8e4ba --- /dev/null +++ b/doc/whatsnew/fragments/8466.internal @@ -0,0 +1,5 @@ +Following a deprecation period, ``MessageTest``'s ``end_line`` and ``end_col_offset`` +must be accurate in functional tests (for python 3.8 or above on cpython, and for +python 3.9 or superior on pypy). + +Refs #8466 diff --git a/doc/whatsnew/fragments/8472.internal b/doc/whatsnew/fragments/8472.internal new file mode 100644 index 000000000..6e9c3956a --- /dev/null +++ b/doc/whatsnew/fragments/8472.internal @@ -0,0 +1,4 @@ +Following a deprecation period, the ``do_exit`` argument of the ``Run`` class (and of the ``_Run`` +class in testutils) were removed. + +Refs #8472 diff --git a/doc/whatsnew/fragments/8473.internal b/doc/whatsnew/fragments/8473.internal new file mode 100644 index 000000000..11491dd57 --- /dev/null +++ b/doc/whatsnew/fragments/8473.internal @@ -0,0 +1,6 @@ +Following a deprecation period, the ``py_version`` argument of the +``MessageDefinition.may_be_emitted`` function is now required. The most likely solution +is to use 'linter.config.py_version' if you need to keep using this +function, or to use 'MessageDefinition.is_message_enabled' instead. + +Refs #8473 diff --git a/doc/whatsnew/fragments/8474.internal b/doc/whatsnew/fragments/8474.internal new file mode 100644 index 000000000..07120ba34 --- /dev/null +++ b/doc/whatsnew/fragments/8474.internal @@ -0,0 +1,5 @@ +Following a deprecation period, the ``OutputLine`` class now requires +the right number of argument all the time. The functional output can be +regenerated automatically to achieve that easily. + +Refs #8474 diff --git a/doc/whatsnew/fragments/8475.internal b/doc/whatsnew/fragments/8475.internal new file mode 100644 index 000000000..0451554e9 --- /dev/null +++ b/doc/whatsnew/fragments/8475.internal @@ -0,0 +1,5 @@ +Following a deprecation period, ``is_typing_guard``, ``is_node_in_typing_guarded_import_block`` and +``is_node_in_guarded_import_block``: from ``pylint.utils`` were removed: use a combination of +``is_sys_guard`` and ``in_type_checking_block`` instead. + +Refs #8475 diff --git a/doc/whatsnew/fragments/8476.feature b/doc/whatsnew/fragments/8476.feature new file mode 100644 index 000000000..56c0be201 --- /dev/null +++ b/doc/whatsnew/fragments/8476.feature @@ -0,0 +1,3 @@ +Add Pyreverse option to exclude standalone nodes from diagrams with `--no-standalone`. + +Closes #8476 diff --git a/doc/whatsnew/fragments/8477.internal b/doc/whatsnew/fragments/8477.internal new file mode 100644 index 000000000..d7b043521 --- /dev/null +++ b/doc/whatsnew/fragments/8477.internal @@ -0,0 +1,4 @@ +Following a deprecation period, the ``location`` argument of the +``Message`` class must now be a ``MessageLocationTuple``. + +Refs #8477 diff --git a/doc/whatsnew/fragments/8478.internal b/doc/whatsnew/fragments/8478.internal new file mode 100644 index 000000000..b1b158508 --- /dev/null +++ b/doc/whatsnew/fragments/8478.internal @@ -0,0 +1,4 @@ +Following a deprecation period, the ``check_single_file`` function of the +``Pylinter`` is replaced by ``Pylinter.check_single_file_item``. + +Refs #8478 diff --git a/doc/whatsnew/fragments/8485.false_positive b/doc/whatsnew/fragments/8485.false_positive new file mode 100644 index 000000000..8eac08b95 --- /dev/null +++ b/doc/whatsnew/fragments/8485.false_positive @@ -0,0 +1,5 @@ +``invalid-name`` now allows for integers in ``typealias`` names: +- now valid: ``Good2Name``, ``GoodName2``. +- still invalid: ``_1BadName``. + +Closes #8485 diff --git a/doc/whatsnew/fragments/8487.false_positive b/doc/whatsnew/fragments/8487.false_positive new file mode 100644 index 000000000..9ff5e3482 --- /dev/null +++ b/doc/whatsnew/fragments/8487.false_positive @@ -0,0 +1,3 @@ +No longer consider ``Union`` as type annotation as type alias for naming checks. + +Closes #8487 diff --git a/doc/whatsnew/fragments/8496.false_positive b/doc/whatsnew/fragments/8496.false_positive new file mode 100644 index 000000000..3ea0fca6c --- /dev/null +++ b/doc/whatsnew/fragments/8496.false_positive @@ -0,0 +1,5 @@ +``unnecessary-lambda`` no longer warns on lambdas which use its parameters in +their body (other than the final arguments), e.g. +``lambda foo: (bar if foo else baz)(foo)``. + +Closes #8496 diff --git a/doc/whatsnew/fragments/8500.false_positive b/doc/whatsnew/fragments/8500.false_positive new file mode 100644 index 000000000..ced61766a --- /dev/null +++ b/doc/whatsnew/fragments/8500.false_positive @@ -0,0 +1,3 @@ +Fixed `unused-import` so that it observes the `dummy-variables-rgx` option. + +Closes #8500 diff --git a/doc/whatsnew/fragments/8504.bugfix b/doc/whatsnew/fragments/8504.bugfix new file mode 100644 index 000000000..2b54ac7b6 --- /dev/null +++ b/doc/whatsnew/fragments/8504.bugfix @@ -0,0 +1,3 @@ +Fix a crash in pyreverse when "/" characters are used in the output filename e.g pyreverse -o png -p name/ path/to/project. + +Closes #8504 diff --git a/doc/whatsnew/fragments/8536.false_negative b/doc/whatsnew/fragments/8536.false_negative new file mode 100644 index 000000000..8b24bc96f --- /dev/null +++ b/doc/whatsnew/fragments/8536.false_negative @@ -0,0 +1,3 @@ +`TypeAlias` variables defined in functions are now checked for `invalid-name` errors. + +Closes #8536 diff --git a/doc/whatsnew/fragments/8540.false_positive b/doc/whatsnew/fragments/8540.false_positive new file mode 100644 index 000000000..543913637 --- /dev/null +++ b/doc/whatsnew/fragments/8540.false_positive @@ -0,0 +1,4 @@ +`Union` typed variables without assignment are no longer treated as +`TypeAlias`. + +Closes #8540 diff --git a/doc/whatsnew/fragments/8555.false_positive b/doc/whatsnew/fragments/8555.false_positive new file mode 100644 index 000000000..157486b39 --- /dev/null +++ b/doc/whatsnew/fragments/8555.false_positive @@ -0,0 +1,3 @@ +Fix false positive for ``positional-only-arguments-expected`` when a function contains both a positional-only parameter that has a default value, and ``**kwargs``. + +Closes #8555 diff --git a/doc/whatsnew/fragments/8559.false_negative b/doc/whatsnew/fragments/8559.false_negative new file mode 100644 index 000000000..37c415138 --- /dev/null +++ b/doc/whatsnew/fragments/8559.false_negative @@ -0,0 +1,3 @@ +Fix false negative for ``no-value-for-parameter`` when a function, whose signature contains both a positional-only parameter ``name`` and also ``*kwargs``, is called with a keyword-argument for ``name``. + +Closes #8559 diff --git a/doc/whatsnew/fragments/8563.bugfix b/doc/whatsnew/fragments/8563.bugfix new file mode 100644 index 000000000..3c9d38b1c --- /dev/null +++ b/doc/whatsnew/fragments/8563.bugfix @@ -0,0 +1,3 @@ +Improve output of ``consider-using-generator`` message for ``min()` calls with ``default`` keyword. + +Closes #8563 diff --git a/doc/whatsnew/fragments/8570.false_positive b/doc/whatsnew/fragments/8570.false_positive new file mode 100644 index 000000000..fec3a855e --- /dev/null +++ b/doc/whatsnew/fragments/8570.false_positive @@ -0,0 +1,3 @@ +Fix false positive for ``keyword-arg-before-vararg`` when a positional-only parameter with a default value precedes ``*args``. + +Closes #8570 diff --git a/doc/whatsnew/index.rst b/doc/whatsnew/index.rst index 47aae955d..4e9c22fea 100644 --- a/doc/whatsnew/index.rst +++ b/doc/whatsnew/index.rst @@ -5,6 +5,7 @@ :titlesonly: :hidden: + 3/index 2/index 1/index 0/index |