./devel/py-pylint, Python source code analyzer

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.3.1, Package name: py312-pylint-3.3.1, Maintainer: pkgsrc-users

Pylint is a Python source code analyzer which looks for programming
errors, helps enforcing a coding standard and sniffs for some code
smells (as defined in Martin Fowler's Refactoring book).
Pylint can be seen as another PyChecker since nearly all tests you
can do with PyChecker can also be done with Pylint. However, Pylint
offers some more features, like checking length of lines of code,
checking if variable names are well-formed according to your coding
standard, or checking if declared interfaces are truly implemented,
and much more. Additionally, it is possible to write plugins to
add your own checks.


Required to run:
[devel/py-setuptools] [devel/py-astroid] [devel/py-mccabe] [devel/py-isort] [lang/python37] [textproc/py-toml]

Required to build:
[pkgtools/cwrappers] [devel/py-test-runner]

Master sites:

Filesize: 1481.155 KB

Version history: (Expand)


CVS history: (Expand)


   2024-03-03 12:54:21 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
py-pylint: update to 3.1.0.

New Features
------------

- Skip ``consider-using-join`` check for non-empty separators if an \ 
``suggest-join-with-non-empty-separator`` option is set to ``no``.

  Closes #8701 (`#8701 <https://github.com/pylint-dev/pylint/issues/8701>`_)

- Discover ``.pyi`` files when linting.

  These can be ignored with the ``ignore-patterns`` setting.

  Closes #9097 (`#9097 <https://github.com/pylint-dev/pylint/issues/9097>`_)

- Check ``TypeAlias`` and ``TypeVar`` (PEP 695) nodes for ``invalid-name``.

  Refs #9196 (`#9196 <https://github.com/pylint-dev/pylint/issues/9196>`_)

- Support for resolving external toml files named pylintrc.toml and .pylintrc.toml.

  Closes #9228 (`#9228 <https://github.com/pylint-dev/pylint/issues/9228>`_)

- Check for `.clear`, `.discard`, `.pop` and `remove` methods being called on a \ 
set while it is being iterated over.

  Closes #9334 (`#9334 <https://github.com/pylint-dev/pylint/issues/9334>`_)

New Checks
----------

- New message `use-yield-from` added to the refactoring checker. This message is \ 
emitted when yielding from a loop can be replaced by `yield from`.

  Closes #9229. (`#9229 <https://github.com/pylint-dev/pylint/issues/9229>`_)

- Added a ``deprecated-attribute`` message to check deprecated attributes in the \ 
stdlib.

  Closes #8855 (`#8855 <https://github.com/pylint-dev/pylint/issues/8855>`_)

False Positives Fixed
---------------------

- Fixed false positive for ``inherit-non-class`` for generic Protocols.

  Closes #9106 (`#9106 <https://github.com/pylint-dev/pylint/issues/9106>`_)

- Exempt ``TypedDict`` from ``typing_extensions`` from ``too-many-ancestor`` checks.

  Refs #9167 (`#9167 <https://github.com/pylint-dev/pylint/issues/9167>`_)

False Negatives Fixed
---------------------

- Extend broad-exception-raised and broad-exception-caught to except*.

  Closes #8827 (`#8827 <https://github.com/pylint-dev/pylint/issues/8827>`_)

- Fix a false-negative for unnecessary if blocks using a different than expected \ 
ordering of arguments.

  Closes #8947. (`#8947 <https://github.com/pylint-dev/pylint/issues/8947>`_)

Other Bug Fixes
---------------

- Improve the message provided for wrong-import-order check.  Instead of the \ 
import statement ("import x"), the message now specifies the import \ 
that is out of order and which imports should come after it.  As reported in the \ 
issue, this is particularly helpful if there are multiple imports on a single \ 
line that do not follow the PEP8 convention.

  The message will report imports as follows:
  For "import X", it will report "(standard/third party/first \ 
party/local) import X"
  For "import X.Y" and "from X import Y", it will report \ 
"(standard/third party/first party/local) import X.Y"
  The import category is specified to provide explanation as to why pylint has \ 
issued the message and guidence to the developer on how to fix the problem.

  Closes #8808 (`#8808 <https://github.com/pylint-dev/pylint/issues/8808>`_)

Other Changes
-------------

- Print how many files were checked in verbose mode.

  Closes #8935 (`#8935 <https://github.com/pylint-dev/pylint/issues/8935>`_)

- Fix a crash when an enum class which is also decorated with a \ 
``dataclasses.dataclass`` decorator is defined.

  Closes #9100 (`#9100 <https://github.com/pylint-dev/pylint/issues/9100>`_)
   2024-02-25 16:21:35 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
py-pylint: update to 3.0.4.

False Positives Fixed

    used-before-assignment is no longer emitted when using a name in a loop and
    depending on an earlier name assignment in an except block paired with
    else: continue.

    Closes #6804

    Avoid false positives for no-member involving function
    attributes supplied by decorators.

    Closes #9246

    Fixed false positive nested-min-max for nested lists.

    Closes #9307

    Fix false positive for used-before-assignment in a finally block
    when assignments took place in both the try block and each exception handler.

    Closes #9451

Other Bug Fixes

    Catch incorrect ValueError "generator already executing" for \ 
Python 3.12.0 - 3.12.2.
    This is fixed upstream in Python 3.12.3.

    Closes #9138
   2023-12-12 18:17:00 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pylint: updated to 3.0.3

What's new in Pylint 3.0.3?

False Positives Fixed

Fixed false positive for unnecessary-lambda when the call has keyword arguments \ 
but not the lambda.

Fixed incorrect suggestion for shallow copy in unnecessary-comprehension

Example of the suggestion:
#pylint: disable=missing-module-docstring
a = [1, 2, 3]
b = [x for x in a]
b[0] = 0
print(a) # [1, 2, 3]

After changing b = [x for x in a] to b = a based on the suggestion, the script \ 
now prints [0, 2, 3]. The correct suggestion should be use list(a) to preserve \ 
the original behavior.

Fix false positives for undefined-variable and unused-argument for
classes and functions using Python 3.12 generic type syntax.

Fixed pointless-string-statement false positive for docstrings
on Python 3.12 type aliases.

Fix false positive for invalid-exception-operation when concatenating tuples
of exception types.

Other Bug Fixes

Fix a bug where pylint was unable to walk recursively through a directory if the
directory has an __init__.py file.
   2023-10-28 21:57:26 by Thomas Klausner | Files touched by this commit (516) | Package updated
Log message:
python/wheel.mk: simplify a lot, and switch to 'installer' for installation

This follows the recommended bootstrap method (flit_core, build, installer).

However, installer installs different files than pip, so update PLISTs
for all packages using wheel.mk and bump their PKGREVISIONs.
   2023-10-24 06:34:33 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pylint: updated to 3.0.2

What's new in Pylint 3.0.2?

False Positives Fixed

Fix used-before-assignment false positive for generic type syntax (PEP 695, \ 
Python 3.12).

Other Bug Fixes

Escape special symbols and newlines in messages.
Fixes suggestion for nested-min-max for expressions with additive operators, \ 
list and dict comprehensions.
Fixes ignoring conditional imports with ignore-imports=y.
Emit inconsistent-quotes for f-strings with 3.12 interpreter only if targeting \ 
pre-3.12 versions.
   2023-10-09 19:39:16 by Adam Ciarcinski | Files touched by this commit (4) | Package updated
Log message:
py-pylint: updated to 3.0.1

3.0.0

Pylint now support python 3.12 officially.

This long anticipated major version also provides some important usability and \ 
performance improvements, along with enacting necessary breaking changes and \ 
long-announced deprecations. The documentation of each message with an example \ 
is very close too.

The required astroid version is now 3.0.0. See the astroid changelog for \ 
additional fixes, features, and performance improvements applicable to pylint.

Our code is now fully typed. The invalid-name message no longer checks for a \ 
minimum length of 3 characters by default. Dependencies like wrapt or setuptools \ 
were removed.

A new json2 reporter has been added. It features an enriched output that is \ 
easier to parse and provides more info.
   2023-09-28 17:56:42 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pylint: updated to 2.17.6

v2.17.6

Other Bug Fixes

When parsing comma-separated lists of regular expressions in the config,
ignore commas that are inside braces since those indicate quantifiers, not
delineation between expressions.

sys.argv is now always correctly considered as impossible to infer
(instead of using the actual values given to pylint).

Don't show class fields more than once in Pyreverse diagrams.

Don't show arrows more than once in Pyreverse diagrams.

Don't show duplicate type annotations in Pyreverse diagrams.

Don't add Optional to | annotations with None in Pyreverse diagrams.
   2023-07-26 17:29:02 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pylint: updated to 2.17.5

What's new in Pylint 2.17.5?

False Positives Fixed

Fix a false positive for unused-variable when there is an import in a
if TYPE_CHECKING: block and allow-global-unused-variables is set to
no in the configuration.

Fix false positives generated when supplying arguments as **kwargs to IO
calls like open().

Fix a false positive where pylint was ignoring method calls annotated as
NoReturn during the inconsistent-return-statements check.

Exempt parents with only type annotations from the invalid-enum-extension
message.