Subject: CVS commit: pkgsrc/devel/py-pylint
From: Adam Ciarcinski
Date: 2022-04-20 12:51:28
Message id: 20220420105128.47251FB1A@cvs.NetBSD.org

Log Message:
py-pylint: updated to 2.13.6

What's New in Pylint 2.13.6?
============================
* Fix a crash in the ``unsupported-membership-test`` checker when assigning
  multiple constants to class attributes including ``__iter__`` via unpacking.

* Asterisks are no longer required in Sphinx and Google style parameter documentation
  for ``missing-param-doc`` and are parsed correctly.

* Fixed a false positive for ``unused-variable`` when a builtin specified in
  ``--additional-builtins`` is given a type annotation.

* Fixed an ``AstroidError`` in 2.13.0 raised by the ``duplicate-code`` checker with
  ``ignore-imports`` or ``ignore-signatures`` enabled.

What's New in Pylint 2.13.5?
============================
* Fix false positive regression in 2.13.0 for ``used-before-assignment`` for
  homonyms between variable assignments in try/except blocks and variables in
  subscripts in comprehensions.

* ``lru-cache-decorating-method`` has been renamed to ``cache-max-size-none`` and
  will only be emitted when ``maxsize`` is ``None``.

* Fix false positive for ``unused-import`` when disabling both \ 
``used-before-assignment`` and ``undefined-variable``.

* Narrow the scope of the ``unnecessary-ellipsis`` checker to:
  * functions & classes which contain both a docstring and an ellipsis.
  * A body which contains an ellipsis ``nodes.Expr`` node & at least one \ 
other statement.

* Fix false positive for ``used-before-assignment`` for assignments taking place via
  nonlocal declarations after an earlier type annotation.

* Fix crash for ``redefined-slots-in-subclass`` when the type of the slot is not \ 
a const or a string.

* Only raise ``not-callable`` when all the inferred values of a property are not \ 
callable.

* Fix a false negative for ``subclassed-final-class`` when a set of other \ 
messages were disabled.

What's New in Pylint 2.13.4?
============================
* Fix false positive regression in 2.13.0 for ``used-before-assignment`` for
  homonyms between variable assignments in try/except blocks and variables in
  a comprehension's filter.

* Include ``testing_pylintrc`` in source and wheel distributions.

* Fix crash in ``super-init-not-called`` checker when using ``ctypes.Union``.

* Fix crash for ``unneccessary-ellipsis`` checker when an ellipsis is used \ 
inside of a container or a lambda expression.

What's New in Pylint 2.13.3?
============================
* Fix false positive for ``unnecessary-ellipsis`` when using an ellipsis as a \ 
default argument.

* Fix crash involving unbalanced tuple unpacking.

* Fix false positive for 'nonexistent-operator' when repeated '-' are
  separated (e.g. by parens).

What's New in Pylint 2.13.2?
============================
* Fix crash when subclassing a ``namedtuple``.

* Fix false positive for ``superfluous-parens`` for patterns like
  "return (a or b) in iterable".

* Fix a false negative regression in 2.13.0 where ``protected-access`` was not
  raised on functions.

* Better error messages in case of crash if pylint can't write the issue template.

What's New in Pylint 2.13.1?
============================
* Fix a regression in 2.13.0 where ``used-before-assignment`` was emitted for
  the usage of a nonlocal in a try block.

* Avoid emitting ``raising-bad-type`` when there is inference ambiguity on
  the variable being raised.

* Loosen TypeVar default name pattern a bit to allow names with multiple uppercase
  characters. E.g. ``HVACModeT`` or ``IPAddressT``.

* Fixed false positive for ``unused-argument`` when a ``nonlocal`` name is used
  in a nested function that is returned without being called by its parent.

* Fix program crash for ``modified_iterating-list/set/dict`` when the list/dict/set
  being iterated through is a function call.

* Don't emit ``broken-noreturn`` and ``broken-collections-callable`` errors
  inside ``if TYPE_CHECKING`` blocks.

What's New in Pylint 2.13.0?
============================
* Add missing dunder methods to ``unexpected-special-method-signature`` check.

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

* Output better error message if unsupported file formats are used with \ 
``pyreverse``.

* Fix pyreverse diagrams type hinting for classmethods and staticmethods.

* Fix pyreverse diagrams type hinting for methods returning None.

* Fix matching ``--notes`` options that end in a non-word character.

* Updated the position of messages for class and function defintions to no \ 
longer cover
  the complete definition. Only the ``def`` or ``class`` + the name of the \ 
class/function
  are covered.

* ``using-f-string-in-unsupported-version`` and \ 
``using-final-decorator-in-unsupported-version`` msgids
    were renamed from ``W1601`` and ``W1602`` to ``W2601`` and ``W2602``. \ 
Disabling using these msgids will break.
    This is done in order to restore consistency with the already existing \ 
msgids for ``apply-builtin`` and
    ``basestring-builtin`` from the now deleted python 3K+ checker. There is now \ 
a check that we're not using
    existing msgids or symbols from deleted checkers.

* The line numbering for messages related to function arguments is now more \ 
accurate. This can
  require some message disables to be relocated to updated positions.

* Add ``--recursive`` option to allow recursive discovery of all modules and \ 
packages in subtree. Running pylint with
  ``--recursive=y`` option will check all discovered ``.py`` files and packages \ 
found inside subtree of directory provided
  as parameter to pylint.

* Add ``modified-iterating-list``, ``modified-iterating-dict`` and \ 
``modified-iterating-set``,
  emitted when items are added to or removed from respectively a list, dictionary or
  set being iterated through.

* Fix false-negative for ``assignment-from-none`` checker using list.sort() method.

* New extension ``import-private-name``: indicate imports of external private \ 
packages
  and objects (prefixed with ``_``). It can be loaded using \ 
``load-plugins=pylint.extensions.private_import``.

* Fixed crash from ``arguments-differ`` and ``arguments-renamed`` when methods were
  defined outside the top level of a class.

* Removed the deprecated ``check_docs`` extension. You can use the ``docparams`` \ 
checker
  to get the checks previously included in ``check_docs``.

* Added a ``testutil`` extra require to the packaging, as ``gitpython`` should \ 
not be a dependency
  all the time but is still required to use the primer helper code in \ 
``pylint.testutil``. You can
  install it with ``pip install pylint[testutil]``.

* Reinstated checks from the python3 checker that are still useful for python 3
  (``eq-without-hash``). This is now in the \ 
``pylint.extensions.eq_without_hash`` optional
  extension.

* Fixed an issue where ``ungrouped-imports`` could not be disabled without raising
  ``useless-suppression``.

* Added several checkers to deal with unicode security issues
  (see `Trojan Sources <https://trojansource.codes/>`_ and
  `PEP 672 <https://peps.python.org/pep-0672/>`_ for details) that also
  concern the readability of the code. In detail the following checks were added:

  * ``bad-file-encoding`` checks that the file is encoded in UTF-8 as suggested by
    `PEP8 <https://peps.python.org/pep-0008/#source-file-encoding>`_.
    UTF-16 and UTF-32 are `not supported by Python \ 
<https://bugs.python.org/issue1503789>`_
    at the moment. If this ever changes
    ``invalid-unicode-codec`` checks that they aren't used, to allow for backwards
    compatibility.

  * ``bidirectional-unicode`` checks for bidirectional unicode characters that
    could make code execution different than what the user expects.

  * ``invalid-character-backspace``, ``invalid-character-carriage-return``,
    ``invalid-character-sub``, ``invalid-character-esc``,
    ``invalid-character-zero-width-space`` and ``invalid-character-nul``
    to check for possibly harmful unescaped characters.

* Use the ``tomli`` package instead of ``toml`` to parse ``.toml`` files.

* Fix false positive - Allow unpacking of ``self`` in a subclass of \ 
``typing.NamedTuple``.

* Fixed false negative ``unpacking-non-sequence`` when value is an empty list.

* Better warning messages for useless else or elif when a function returns early.

* Fixed false positive ``consider-using-dict-comprehension`` when creating a dict
  using a list of tuples where key AND value vary depending on the same condition.

* Fixed false positive for ``global-variable-undefined`` when ``global`` is used \ 
with a class name

* Fixed false positive for ``unused-variable`` when a ``nonlocal`` name is \ 
assigned as part of a multi-name assignment.

* Fixed a crash in ``unspecified-encoding`` checker when providing ``None``
  to the ``mode`` argument of an ``open()`` call.

* Fixed a crash involving a ``NewType`` named with an f-string.

* Improved ``bad-open-mode`` message when providing ``None`` to the ``mode``
  argument of an ``open()`` call.

* Added ``lru-cache-decorating-method`` checker with checks for the use of \ 
``functools.lru_cache``
  on class methods. This is unrecommended as it creates memory leaks by never \ 
letting the instance
  getting garbage collected.

* Fixed crash with recursion error for inference of class attributes that referenced
  the class itself.

* Fixed false positive for ``unused-argument`` when a method overridden in a subclass
  does nothing with the value of a keyword-only argument.

* The issue template for crashes is now created for crashes which were \ 
previously not covered
  by this mechanism.

* Rewrote checker for ``non-ascii-name``.
   It now ensures __all__ Python names are ASCII and also properly
   checks the names of imports (``non-ascii-module-import``) as
   well as file names (``non-ascii-file-name``) and emits their respective new \ 
warnings.

   Non ASCII characters could be homoglyphs (look alike characters) and hard to
   enter on a non specialized keyboard.
   See `Confusable Characters in PEP 672 \ 
<https://peps.python.org/pep-0672/#confusing-features>`_

* When run in parallel mode ``pylint`` now pickles the data passed to \ 
subprocesses with
  the ``dill`` package. The ``dill`` package has therefore been added as a \ 
dependency.

* An astroid issue where symlinks were not being taken into account
  was fixed

* Fix a crash in ``unused-private-member`` checker when analyzing code using
  ``type(self)`` in bound methods.

* Optimize parsing of long lines when ``missing-final-newline`` is enabled.

* Fix false positives for ``used-before-assignment`` from using named
  expressions in a ternary operator test and using that expression as
  a call argument.

* Fix false positive for ``undefined-variable`` when ``namedtuple`` class
  attributes are used as return annotations.

* Fix false negative for ``undefined-variable`` and related variable messages
  when the same undefined variable is used as a type annotation and is
  accessed multiple times, or is used as a default argument to a function.

* Pyreverse - add output in mermaidjs format

* Emit ``used-before-assignment`` instead of ``undefined-variable`` when attempting
  to access unused type annotations.

* Added confidence level ``CONTROL_FLOW`` for warnings relying on assumptions
  about control flow.

* ``used-before-assignment`` now considers that assignments in a try block
  may not have occurred when the except or finally blocks are executed.

* Fixed false negative for ``used-before-assignment`` when a conditional
  or context manager intervened before the try statement that suggested
  it might fail.

* Fixed false negative for ``used-before-assignment`` in finally blocks
  if an except handler did not define the assignment that might have failed
  in the try block.

* Fixed extremely long processing of long lines with comma's.

* Fixed crash on properties and inherited class methods when comparing them for
  equality against an empty dict.

* Fixed a false positive for ``assigning-non-slot`` when the slotted class
  defined ``__setattr__``.

* Fixed a false positive for ``invalid-class-object`` when the object
  being assigned to the ``__class__`` attribute is uninferable.

* Fixed false positive for ``used-before-assignment`` with self-referential type
  annotation in conditional statements within class methods.

* Add checker ``redefined-slots-in-subclass``: Emitted when a slot is redefined \ 
in a subclass.

* Fixed false positive for ``global-variable-not-assigned`` when the ``del`` \ 
statement is used

* By default, pylint does no longer take files starting with ``.#`` into \ 
account. Those are
  considered `emacs file locks`. See
  https://www.gnu.org/software/emacs/manual/html_node/elisp/File-Locks.html.
  This behavior can be reverted by redefining the ``ignore-patterns`` option.

* Fixed a false positive for ``used-before-assignment`` when a named expression
  appears as the first value in a container.

* ``used-before-assignment`` now assumes that assignments in except blocks
  may not have occurred and warns accordingly.

* When evaluating statements after an except block, ``used-before-assignment``
  assumes that assignments in the except blocks took place if the
  corresponding try block contained a return statement.

* Fixed a false negative for ``used-before-assignment`` when some but not all
  except handlers defined a name relied upon after an except block when the
  corresponding try block contained a return statement.

* When evaluating statements in the ``else`` clause of a loop, \ 
``used-before-assignment``
  assumes that assignments in the except blocks took place if the
  except handlers constituted the only ways for the loop to finish without
  breaking early.

* ``used-before-assignment`` now checks names in try blocks.

* Fixed false positive with ``used-before-assignment`` for assignment expressions
  in lambda statements.

* Fixed a false positive (affecting unreleased development) for
  ``used-before-assignment`` involving homonyms between filtered comprehensions
  and assignments in except blocks.

* Fixed crash with slots assignments and annotated assignments.

* Fixed crash on list comprehensions that used ``type`` as inner variable name.

* Fixed crash in ``use-maxsplit-arg`` checker when providing the ``sep`` argument
  to ``str.split()`` by keyword.

* Fix false positive for ``unused-variable`` for a comprehension variable matching
  an outer scope type annotation.

* Fix false negative for ``undefined-variable`` for a variable used multiple times
  in a comprehension matching an unused outer scope type annotation.

* Some files in ``pylint.testutils`` were deprecated. In the future imports \ 
should be done from the
  ``pylint.testutils.functional`` namespace directly.

* Fixed false positives for ``no-value-for-parameter`` with variadic
  positional arguments.

* ``safe_infer`` no longer makes an inference when given two function
  definitions with differing numbers of arguments.

* Fix ``comparison-with-callable`` false positive for callables that raise, such
  as typing constants.

* Fixed a crash on ``__init__`` nodes when the attribute was previously \ 
uninferable due to a cache
  limit size. This limit can be hit when the inheritance pattern of a class (and \ 
therefore of the ``__init__`` attribute) is very large.

* Fix false positive for ``used-before-assignment`` from a class definition
  nested under a function subclassing a class defined outside the function.

* Fix ``unnecessary_dict_index_lookup`` false positive when deleting a \ 
dictionary's entry.

* Fix false positive for ``used-before-assignment`` when an except handler
  shares a name with a test in a filtered comprehension.

* Fix crash in ``unnecessary-dict-index-lookup`` checker if the output of
  ``items()`` is assigned to a 1-tuple.

* When invoking ``pylint``, ``epylint``, ``symilar`` or ``pyreverse`` by \ 
importing them in a python file
  you can now pass an ``argv`` keyword besides patching ``sys.argv``.

* The ``PyLinter`` class will now be initialized with a ``TextReporter``
  as its reporter if none is provided.

* Fix ``super-init-not-called`` when parent or ``self`` is a ``Protocol``

* Fix false positive ``not-callable`` with attributes that alias ``NamedTuple``

* Emit ``redefined-outer-name`` when a nested except handler shadows an outer one.

* Fix false positive ``super-init-not-called`` for classes that inherit their \ 
``init`` from
  a parent.

* ``encoding`` can now be supplied as a positional argument to calls that open
  files without triggering ``unspecified-encoding``.

* Fatal errors now emit a score of 0.0 regardless of whether the linted module
  contained any statements

* ``fatal`` was added to the variables permitted in score evaluation expressions.

* The default score evaluation now uses a floor of 0.

* Fix false negative for ``consider-iterating-dictionary`` during membership \ 
checks encapsulated in iterables
  or ``not in`` checks

* Fixed crash on uninferable decorators on Python 3.6 and 3.7

* Add checker ``unnecessary-ellipsis``: Emitted when the ellipsis constant is \ 
used unnecessarily.

* Disable checker ``bad-docstring-quotes`` for Python <= 3.7, because in \ 
these versions the line
  numbers for decorated functions and classes are not reliable which interferes \ 
with the checker.

* Fixed incorrect classification of Numpy-style docstring as Google-style \ 
docstring for
  docstrings with property setter documentation.
  Docstring classification is now based on the highest amount of matched \ 
sections instead
  of the order in which the docstring styles were tried.

* Fixed detection of ``arguments-differ`` when superclass static
  methods lacked a ``@staticmethod`` decorator.

* ``TypingChecker``

  * Added new check ``broken-noreturn`` to detect broken uses of ``typing.NoReturn``
    if ``py-version`` is set to Python ``3.7.1`` or below.
    https://bugs.python.org/issue34921

  * Added new check ``broken-collections-callable`` to detect broken uses of \ 
``collections.abc.Callable``
    if ``py-version`` is set to Python ``3.9.1`` or below.
    https://bugs.python.org/issue42965

* The ``testutils`` for unittests now accept ``end_lineno`` and ``end_column``. Tests
  without these will trigger a ``DeprecationWarning``.

* ``arguments-differ`` will no longer complain about method redefinitions with \ 
extra parameters
  that have default values.

* Fixed false positive ``unexpected-keyword-arg`` for decorators.

* Importing the deprecated stdlib module ``xml.etree.cElementTree`` now emits \ 
``deprecated_module``.

* Disables for ``deprecated-module`` and similar warnings for stdlib features \ 
deprecated
  in newer versions of Python no longer raise ``useless-suppression`` when \ 
linting with
  older Python interpreters where those features are not yet deprecated.

* Importing the deprecated stdlib module ``distutils`` now emits \ 
``deprecated_module`` on Python 3.10+.

* ``missing-raises-doc`` will now check the class hierarchy of the raised exceptions

  .. code-block:: python

    def my_function()
      """My function.

      Raises:
        Exception: if something fails
      """
      raise ValueError

* Allow disabling ``duplicate-code`` with a disable comment when running through
  pylint.

* Improve ``invalid-name`` check for ``TypeVar`` names.
  The accepted pattern can be customized with ``--typevar-rgx``.

* Added new checker ``typevar-name-missing-variance``. Emitted when a covariant
  or contravariant ``TypeVar`` does not end with  ``_co`` or ``_contra`` \ 
respectively or
  when a ``TypeVar`` is not either but has a suffix.

* Allow usage of mccabe 0.7.x release

* Fix ``unused-private-member`` false positive when accessing private methods \ 
through ``property``.

Files:
RevisionActionfile
1.60modifypkgsrc/devel/py-pylint/Makefile
1.26modifypkgsrc/devel/py-pylint/PLIST
1.50modifypkgsrc/devel/py-pylint/distinfo
1.1removepkgsrc/devel/py-pylint/patches/patch-setup.cfg