|
|
|
|
Changelog for python312-pylint-3.2.5-1.1.noarch.rpm :
* Tue Jul 09 2024 Daniel Garcia - Add new patch to fix failing tests with pytest 8, pytest-8.patch gh#pylint-dev/pylint#9576- Skip some tests that still are failing with pytest 8, gh#pylint-dev/pylint#9545 * Sun Jun 30 2024 Dirk Müller - update to 3.2.5: * Fixed a false positive ``unreachable-code`` when using ``typing.Any`` as return type in python 3.8, the ``typing.NoReturn`` are not taken into account anymore for python 3.8 however. * Prevent emitting ``possibly-used-before-assignment`` when relying on names only potentially not defined in conditional blocks guarded by functions annotated with ``typing.Never`` or ``typing.NoReturn``.- update to 3.2.3: * Classes with only an Ellipsis (``...``) in their body do not trigger \'multiple-statements\' anymore if they are inlined * Fix a false positive for ``redefined-outer-name`` when there is a name defined in an exception-handling block which shares the same name as a local variable that has been defined in a function body. * Fix a false positive for ``use-yield-from`` when using the return value from the ``yield`` atom.- update to 3.2.2: * Fix multiple false positives for generic class syntax added in Python 3.12 (PEP 695). * Exclude context manager without cleanup from ``contextmanager-generator-missing-cleanup`` checks.- update to 3.2.1: * Exclude if/else branches containing terminating functions (e.g. `sys.exit()`) from `possibly-used-before-assignment` checks. * Don\'t emit ``typevar-name-incorrect-variance`` warnings for PEP 695 style TypeVars. * The variance is inferred automatically by the type checker. * Adding ``_co`` or ``_contra`` suffix can help to reason about TypeVar.- update to 3.2.0: * Understand `six.PY2` and `six.PY3` for conditional imports. * Github can use to automatically annotate code. Use it with `pylint --output-format=github` on your Github Workflows. * Add check ``possibly-used-before-assignment`` when relying on names after an ``if/else`` switch when one branch failed to define the name, raise, or return. * Checks for generators that use contextmanagers that don\'t handle cleanup properly. * Is meant to raise visibilty on the case that a generator is not fully exhausted and the contextmanager is not cleaned up properly. * A contextmanager must yield a non-constant value and not handle cleanup for GeneratorExit. * The using generator must attempt to use the yielded context value `with x() as y` and not just `with x()`. * Fri Mar 22 2024 Dirk Müller - update to 3.1.0: * Two new checks--``use-yield-from``, ``deprecated- attribute``-- and a smattering of bug fixes. * Skip ``consider-using-join`` check for non-empty separators if an ``suggest-join-with-non-empty-separator`` option is set to ``no``. * Discover ``.pyi`` files when linting. * Check ``TypeAlias`` and ``TypeVar`` (PEP 695) nodes for ``invalid-name``. * Support for resolving external toml files named pylintrc.toml and .pylintrc.toml. * Check for `.clear`, `.discard`, `.pop` and `remove` methods being called on a set while it is being iterated over. * 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`. * Added a ``deprecated-attribute`` message to check deprecated attributes in the stdlib. * Exempt ``TypedDict`` from ``typing_extensions`` from ``too- many-ancestor`` checks. * Extend broad-exception-raised and broad-exception-caught to except *. * Fix a false-negative for unnecessary if blocks using a different than expected ordering of arguments. * 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. * Fix a crash when an enum class which is also decorated with a ``dataclasses.dataclass`` decorator is defined. * Mon Dec 18 2023 Dirk Müller - update to 3.0.3: * 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 * 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. * Fix a bug where pylint was unable to walk recursively through a directory if the directory has an `__init__.py` file. * Mon Nov 27 2023 Dirk Müller - update to 3.0.2: * Fix ``used-before-assignment`` false positive for generic type syntax (PEP 695, Python 3.12). * 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. * Fri Oct 20 2023 ecsos - Update to 3.0.1: * False Positives Fixed - Fixed false positive for inherit-non-class for generic Protocols. Closes #9106 * Other Changes - Fix a crash when an enum class which is also decorated with a dataclasses.dataclass decorator is defined. Closes #9100- Update to 3.0.0: - Pylint now support python 3.12 officially. - The required astroid version is now 3.0.0 For all chaanges see: https://github.com/pylint-dev/pylint/releases/tag/v3.0.0- Changes from 2.17.7 2.17.7 is the last release before we only support pylint 3.0.0 or superior and python 3.8 or superior. * False Positives Fixed - Fix a regression in pylint 2.17.6 / astroid 2.15.7 causing various messages for code involving TypeVar. Closes #9069 * Other Bug Fixes - Fix crash in refactoring checker when unary operand used with variable in for loop. Closes #9074- Changes from 2.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. Closes #7229 - sys.argv is now always correctly considered as impossible to infer (instead of using the actual values given to pylint). Closes #9047 - Don\'t show class fields more than once in Pyreverse diagrams. Closes #8189 - Don\'t show arrows more than once in Pyreverse diagrams. Closes #8522 - Don\'t show duplicate type annotations in Pyreverse diagrams. Closes #8888 - Don\'t add Optional to | annotations with None in Pyreverse diagrams. Closes #9014- Changes from 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. Closes #8696 - Fix false positives generated when supplying arguments as * *kwargs to IO calls like open(). Closes #8719 - Fix a false positive where pylint was ignoring method calls annotated as NoReturn during the inconsistent-return-statements check. Closes #8747 - Exempt parents with only type annotations from the invalid-enum-extension message. Closes #8830 * Other Bug Fixes - Fixed crash when a call to super() was placed after an operator (e.g. not). Closes #8554 - Fix crash for modified-while-iterating checker when deleting members of a dict returned from a call. Closes #8598 - Fix crash in invalid-metaclass check when a metaclass had duplicate bases. Closes #8698 - Avoid consider-using-f-string on modulos with brackets in template. Closes #8720. - Fix a crash when __all__ exists but cannot be inferred. Closes #8740 - Fix crash when a variable is assigned to a class attribute of identical name. Closes #8754 - Fixed a crash when calling copy.copy() without arguments. Closes #8774 * Other Changes - Fix a crash when a nonlocal is defined at module-level. Closes #8735 * Thu Jun 01 2023 Ben Greiner - Update test setup: rerun flaky pyreverse tests * Mon May 08 2023 Dirk Müller - update to 2.17.4: * Fix a false positive for ``bad-dunder-name`` when there is a user-defined ``__index__`` method. * ``pyreverse``: added escaping of vertical bar character in annotation labels * produced by DOT printer to ensure it is not treated as field separator of record-based nodes. * Fixed a crash when generating a configuration file: * ``tomlkit.exceptions.TOMLKitError: Can\'t add a table to a dotted key`` caused by tomlkit ``v0.11.8``. * Mon May 08 2023 Johannes Kastl - add sle15_python_module_pythons * Thu May 04 2023 Dirk Müller - update to 2.17.3: * Fix `unused-argument` false positive when `__new__` does not use all the arguments of `__init__`. * Fix ``unused-import`` false positive for usage of ``six.with_metaclass``. * `logging-not-lazy` is not longer emitted for explicitly concatenated string arguments. * Fix false positive for isinstance-second-argument-not-valid- type when union types contains None. * Fixed `unused-import` so that it observes the `dummy- variables-rgx` option. * `Union` typed variables without assignment are no longer treated as `TypeAlias`. * Fix false positive for ``positional-only-arguments-expected`` when a function contains both a positional-only parameter that has a default value, and `` * *kwargs``. * Fix false positive for ``keyword-arg-before-vararg`` when a positional-only parameter with a default value precedes `` *args``. * Improve output of ``consider-using-generator`` message for ``min()` calls with ``default`` keyword. * Mon Apr 17 2023 Dirk Müller - update to 2.17.2: * invalid-name now allows for integers in typealias names: * now valid: Good2Name, GoodName2. * still invalid: _1BadName. * No longer consider Union as type annotation as type alias for naming checks. * 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). * Fix a crash in pyreverse when \"/\" characters are used in the output filename e.g pyreverse -o png -p name/ path/to/project. * 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. * Adds asyncSetUp to the default defining-attr-methods list to silence * attribute-defined-outside-init warning when using * unittest.IsolatedAsyncioTestCase. * invalid-name now allows for integers in typealias names: * now valid: Good2Name, GoodName2. * still invalid: _1BadName. * No longer consider Union as type annotation as type alias for naming checks. * 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). * --clear-cache-post-run now also clears LRU caches for pylint utilities holding references to AST nodes. * Fix a crash when TYPE_CHECKING is used without importing it. * Fix a used-before-assignment false positive when imports are made under the TYPE_CHECKING else if branch. * Fix a regression of preferred-modules where a partial match was used instead of the required full match.- drop pylint-pr7367-pythonpathtest.patch (upstream) * Mon Jan 09 2023 Dirk Müller - update to v2.15.10: * Fix use-sequence-for-iteration when unpacking a set with *. * Fix false positive assigning-non-slot when a class attribute is * re-assigned. * Fixes used-before-assignment false positive when the walrus operator * is used in a ternary operator. * Prevent used-before-assignment when imports guarded by if TYPE_CHECKING * are guarded again when used. * Using custom braces in msg-template will now work properly. * Sat Dec 17 2022 Dirk Müller - update to v2.15.9: * Fix false-positive for used-before-assignment in pattern matching with a guard. * Pylint will no longer deadlock if a parallel job is killed but fail immediately instead. * When pylint exit due to bad arguments being provided the exit code will now be the expected 32. * Fixes a ModuleNotFound exception when running pylint on a Django project with the pylint_django plugin enabled. * Document a known false positive for useless-suppression when disabling * line-too-long in a module with only comments and no code. * Fix logging-fstring-interpolation false positive raised when logging and f-string with %s formatting. * Fixes false positive abstract-method on Protocol classes. * Fix missing-param-doc false positive when function parameter has an escaped underscore. * multiple-statements no longer triggers for function stubs using inlined .... * Fix deprecated-method false positive when alias for method is similar to * name of deprecated method. * Fix a false positive for used-before-assignment for imports guarded by * typing.TYPE_CHECKING later used in variable annotations. * Other Bug Fixes * 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. * Fixes a crash in stop-iteration-return when the next builtin is * called without arguments. * Fix false positive for unhashable-member when subclassing dict and * using the subclass as a dictionary key. * unnecessary-list-index-lookup will not be wrongly emitted if * enumerate is called with start. * Don\'t warn about stop-iteration-return when using next() over * itertools.cycle. * Messages sent to reporter are now copied so a reporter cannot modify the * message sent to other reporters. * Fix crash that happened when parsing files with unexpected encoding starting with \'utf\' like utf13. * Fix a crash when a child class with an __init__ method inherits from a * parent class with an __init__ class attribute. * Fix a false positive for simplify-boolean-expression when multiple values are inferred for a constant. * Remove __index__ dunder method call from unnecessary-dunder-call * Fixed a multi-processing crash that prevents using any more than 1 thread on MacOS. * The returned module objects and errors that were cached by the linter plugin loader cannot be reliably pickled. This means that dill would throw an error when attempting to serialise the linter object for multi-processing use. * Add a keyword-only compare_constants argument to safe_infer. * Sort --generated-rcfile output. * Mon Oct 17 2022 Michael Ströder - update to 2.15.4 * False Positives Fixed - Fix the message for unnecessary-dunder-call for __aiter__ and __aneext__. Also only emit the warning when py-version >= 3.10. Closes #7529 * Other Bug Fixes - Fix bug in detecting unused-variable when iterating on variable. Closes #3044 - Fixed handling of -- as separator between positional arguments and flags. This was not actually fixed in 2.14.5. Closes #7003, Refs #7096 - Report no-self-argument rather than no-method-argument for methods with variadic arguments. Closes #7507 - Fixed an issue where syntax-error couldn\'t be raised on files with invalid encodings. Closes #7522 - Fix false positive for redefined-outer-name when aliasing typing e.g. as t and guarding imports under t.TYPE_CHECKING. Closes #7524 - Fixed a crash of the modified_iterating checker when iterating on a set defined as a class attribute. Closes #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 * Other Changes - Add method name to the error messages of no-method-argument and no-self-argument. Closes #7507 * Fri Sep 23 2022 Ben Greiner - Fix astroid requirement. * Thu Sep 22 2022 Michael Ströder - update to 2.15.3 * Fixed a crash in the unhashable-member checker when using a lambda as a dict key. 7453 * Fix a crash in the modified-iterating-dict checker involving instance attributes. #7461 * invalid-class-object does not crash anymore when __class__ is assigned alongside another variable. #7467 * Fix false positive for global-variable-not-assigned when a global variable is re-assigned via an ImportFrom node. #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. #7311 * --help-msg now accepts a comma-separated list of message IDs again. #7471 * Mon Sep 12 2022 Dirk Müller - update to 2.15.2: * Fixed a case where custom plugins specified by command line could silently fail. * Fix ``used-before-assignment`` for functions/classes defined in type checking guard. * Update ``modified_iterating`` checker to fix a crash with ``for`` loops on empty list. * The ``docparams`` extension now considers typing in Numpy style docstrings * Fix false positive for ``unused-variable`` and ``unused-import`` when a name is only used in a string literal type annotation. * 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. * Fix ``used-before-assignment`` for functions/classes defined in type checking guard. * Fix ignored files being linted when passed on stdin. * ``missing-return-doc``, ``missing-raises-doc`` and ``missing-yields-doc`` now respect * Don\'t crash on ``OSError`` in config file discovery. * ``disable-next`` is now correctly scoped to only the succeeding line. * Update ``modified_iterating`` checker to fix a crash with ``for`` loops on empty list. * Sat Aug 27 2022 Ben Greiner - Update to version 2.15.0 * In pylint 2.15.0, we added a new check missing-timeout to warn of default timeout values that could cause a program to be hanging indefinitely. * We improved pylint\'s handling of namespace packages. More packages should be linted without resorting to using the - -recursive=y option.- Release highlights from 2.14 * With 2.14 pylint only supports Python version 3.7.2 and above. * We introduced several new checks among which duplicate-value for sets, comparison-of-constants, and checks related to lambdas. We removed no-init and made no-self-use optional as they were too opinionated. We also added an option to generate a toml configuration: --generate-toml-config. * We migrated to argparse from optparse and refactored the configuration handling thanks to Daniël van Noord. On the user side it should change the output of the --help command, and some inconsistencies and bugs should disappear. The behavior between options set in a config file versus on the command line will be more consistent. For us, it will permit to maintain this part of the code easily in the future and anticipate optparse\'s removal in Python 3.12. * As a result of the refactor there are a lot of internal deprecations. If you\'re a library maintainer that depends on pylint, please verify that you\'re ready for pylint 3.0 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 `_. 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!- Release highlights from 2.13 * In 2.13, we introduced a new check to deal with unicode security issues. On top of that a lot of work was done inside the unicode checker by AATTCarliJoy. We also introduced a new check when importing private name and for unnecessary ellipsis among other. * We fixed long standing issues related to duplicate code that could not be disabled, line numbers that were not accurate some of the time, and added the ability to lint all files in a directory without specifying each one. One of the most anticipated issue from the repository. Thank you AATTmatusvalo ! * A lot of undefined-variables and used-before-assignment issues were resolved thanks to AATTjacobtylerwalls. * We started integrating pylint-error the documentation created by AATTvald-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. 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. * This release is the last one to support interpreter below 3.7.2, 3.6 end of life was reached in december 2021.- Add pylint-pr7367-pythonpathtest.patch * gh#PyCQA/pylint#7367 * Sat Dec 11 2021 Ben Greiner - Update to version 2.12.2 * Fixed a false positive for ``unused-import`` where everything was not analyzed properly inside typing guards. * Fixed a false-positive regression for ``used-before-assignment`` for typed variables in the body of class methods that reference the same class * Specified that the ``ignore-paths`` option considers \"\\\" to represent a windows directory delimiter instead of a regular expression escape character. * Fixed a crash with the ``ignore-paths`` option when invoking the option via the command line. * Fixed handling of Sphinx-style parameter docstrings with asterisks. These should be escaped with by prepending a \"\\\". * Add ``endLine`` and ``endColumn`` keys to output of ``JSONReporter``. * Fixed handling of Google-style parameter specifications where descriptions are on the line following the parameter name. These were generating false positives for ``missing-param-doc``. * Fix false negative for ``consider-iterating-dictionary`` during membership checks encapsulated in iterables or ``not in`` checks * ``unused-import`` now check all ancestors for typing guards- Release notes for 2.12.1 * Require Python ``3.6.2`` to run pylint.- Release notes for 2.12.0 * Upgrade astroid to 2.9.0 * Add ability to add ``end_line`` and ``end_column`` to the ``--msg-template`` option. With the standard ``TextReporter`` this will add the line and column number of the end of a node to the output of Pylint. If these numbers are unknown, they are represented by an empty string. * Introduced primer tests and a configuration tests framework. The helper classes available in ``pylint/testutil/`` are still unstable and might be modified in the near future. * Fix ``install graphiz`` message which isn\'t needed for puml output format. * ``MessageTest`` of the unittest ``testutil`` now requires the ``confidence`` attribute to match the expected value. If none is provided it is set to ``UNDEFINED``. * ``add_message`` of the unittest ``testutil`` now actually handles the ``col_offset`` parameter 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 longer relies on counting if statements anymore and uses known if statements locations instead. It should not crash on badly parsed if statements anymore. * Fix ``simplify-boolean-expression`` when condition can be inferred as False. * Fix exception when pyreverse parses ``property function`` of a class. * The functional ``testutils`` now accept ``end_lineno`` and ``end_column``. Expected output files without these will trigger a ``DeprecationWarning``. Expected output files can be easily updated with the ``python tests/test_functional.py - -update-functional-output`` command. * The functional ``testutils`` now correctly check the distinction betweeen ``HIGH`` and ``UNDEFINED`` confidence. Expected output files without defiend ``confidence`` levels will now trigger a ``DeprecationWarning``. Expected output files can be easily updated with the ``python tests/test_functional.py --update-functional-output`` command. * The functional test runner now supports the option ``min_pyver_end_position`` to control on which python versions the ``end_lineno`` and ``end_column`` attributes should be checked. The default value is 3.8. * Fix ``accept-no-yields-doc`` and ``accept-no-return-doc`` not allowing missing ``yield`` or ``return`` documentation when a docstring is partially correct * Add an optional extension ``consider-using-any-or-all`` : Emitted when a ``for`` loop only produces a boolean and could be replaced by ``any`` or ``all`` using a generator. Also suggests a suitable any or all statement. * Properly identify parameters with no documentation and add new message called ``missing-any-param-doc`` * Add checkers ``overridden-final-method`` & ``subclassed-final-class`` * Fixed ``protected-access`` for accessing of attributes and methods of inner classes * Added support for ``ModuleNotFoundError`` (``import-error`` and ``no-name-in-module``). ``ModuleNotFoundError`` inherits from ``ImportError`` and was added in Python ``3.6`` * ``undefined-variable`` now correctly flags variables which only receive a type annotations and never get assigned a value * ``undefined-variable`` now correctly considers the line numbering and order of classes used in metaclass declarations * ``used-before-assignment`` now correctly considers references to classes as type annotation or default values in first-level methods * ``undefined-variable`` and ``unused-variable`` now correctly trigger for assignment expressions in functions defaults * ``undefined-variable`` now correctly triggers for assignment expressions in if ... else statements This includes a basic form of control flow inference for if ... else statements using constant boolean values * Added the ``--enable-all-extensions`` command line option. It will load all available extensions which can be listed by running ``--list-extensions`` * Fix bug with importing namespace packages with relative imports * Improve and flatten ``unused-wildcard-import`` message * In length checker, ``len-as-condition`` has been renamed as ``use-implicit-booleaness-not-len`` in order to be consistent with ``use-implicit-booleaness-not-comparison``. * Created new ``UnsupportedVersionChecker`` checker class that includes checks for features not supported by all versions indicated by a ``py-version``. * Added ``using-f-string-in-unsupported-version`` checker. Issued when ``py-version`` is set to a version that does not support f-strings (< 3.6) * Fix ``useless-super-delegation`` false positive when default keyword argument is a variable. * Properly emit ``duplicate-key`` when Enum members are duplicate dictionary keys * Use ``py-version`` setting for alternative union syntax check (PEP 604), instead of the Python interpreter version. * Subclasses of ``dict`` are regarded as reversible by the ``bad-reversed-sequence`` checker (Python 3.8 onwards). * Support configuring mixin class pattern via ``mixin-class-rgx`` * Added new checker ``use-implicit-booleaness-not-comparison``: Emitted when collection literal comparison is being used to check for emptiness. * ``mising-param-doc`` now correctly parses asterisks for variable length and keyword parameters * ``mising-param-doc`` now correctly handles Numpy parameter documentation without explicit typing * ``pylint`` no longer crashes when checking assignment expressions within if-statements * Update ``literal-comparison``` checker to ignore tuple literals * Normalize the input to the ``ignore-paths`` option to allow both Posix and Windows paths * Fix double emitting of ``not-callable`` on inferrable ``properties`` * ``self-cls-assignment`` now also considers tuple assignment * Fix ``missing-function-docstring`` not being able to check ``__init__`` and other magic methods even if the ``no-docstring-rgx`` setting was set to do so * Added ``using-final-decorator-in-unsupported-version`` checker. Issued when ``py-version`` is set to a version that does not support ``typing.final`` (< 3.8) * Added configuration option ``exclude-too-few-public-methods`` to allow excluding classes from the ``min-public-methods`` checker. * The ``--jobs`` parameter now fallbacks to 1 if the host operating system does not have functioning shared semaphore implementation. * Fix crash for ``unused-private-member`` when checking private members on ``__class__`` * Crashes when a list is encountered in a toml configuration do not happen anymore. * Moved ``misplaced-comparison-constant`` to its own extension ``comparison_placement``. This checker was opinionated and now no longer a default. It can be reactived by adding ``pylint.extensions.comparison_placement`` to ``load-plugins`` in your config. * A new ``bad-configuration-section`` checker was added that will emit for misplaced option in pylint\'s top level namespace for toml configuration. Top-level dictionaries or option defined in the wrong section will still silently not be taken into account, which is tracked in a follow-up issue. * Fix crash for ``protected-access`` on (outer) class traversal * Added new checker ``useless-with-lock`` to find incorrect usage of with statement and threading module locks. Emitted when ``with threading.Lock():`` is used instead of ``with lock_instance:``. * Make yn validator case insensitive, to allow for ``True`` and ``False`` in config files. * Fix crash on ``open()`` calls when the ``mode`` argument is not a simple string. * Inheriting from a class that implements ``__class_getitem__`` no longer raises ``inherit-non-class``. * Pyreverse - Add the project root directory to sys.path * Don\'t emit ``consider-using-f-string`` if ``py-version`` is set to Python < ``3.6``. ``f-strings`` were added in Python ``3.6`` * Fix regression for ``unspecified-encoding`` with ``pathlib.Path.read_text()`` * Don\'t emit ``consider-using-f-string`` if the variables to be interpolated include a backslash * Fixed false positive for ``cell-var-from-loop`` when variable is used as the default value for a keyword-only parameter. * Fix false-positive ``undefined-variable`` with ``Lambda``, ``IfExp``, and assignment expression. * Fix false-positive ``useless-suppression`` for ``wrong-import-order`` * Fixed ``toml`` dependency issue * Fix false-positive ``useless-suppression`` for ``line-too-long`` * Fixed ``invalid-name`` not checking parameters of overwritten base ``object`` methods * Fixed crash in ``consider-using-f-string`` if ``format`` is not called * Fix crash with ``AssignAttr`` in ``if TYPE_CHECKING`` blocks. * Improve node information for ``invalid-name`` on function argument. * Prevent return type checkers being called on functions with ellipses as body * Add ``is_sys_guard`` and ``is_typing_guard`` helper functions from astroid to ``pylint.checkers.utils``. * Fix regression on ClassDef inference * Fix regression on Compare node inference * Fix false-positive ``isinstance-second-argument-not-valid-type`` with ``typing.Callable``. * It is now recommended to do ``pylint`` development on ``Python`` 3.8 or higher. This allows using the latest ``ast`` parser. * All standard jobs in the ``pylint`` CI now run on ``Python`` 3.8 by default. We still support python 3.6 and 3.7 and run tests for those interpreters. * ``TypingChecker`` * Fix false-negative for ``deprecated-typing-alias`` and ``consider-using-alias`` with ``typing.Type`` + ``typing.Callable``.- Unpin mccabe and astroid in sitelib metadata. * Sat Oct 16 2021 Ben Greiner - Dropped pylint-pr4816-astroid27.patch * Sun Oct 03 2021 Ben Greiner - Update to 2.11.1 * ``unspecified-encoding`` now checks the encoding of ``pathlib.Path()`` correctly * The python3 porting mode checker and it\'s ``py3k`` option were removed. You can still find it in older pylints versions. * ``raising-bad-type`` is now properly emitted when raising a string * Added new extension ``SetMembershipChecker`` with ``use-set-for-membership`` check: Emitted when using an in-place defined ``list`` or ``tuple`` to do a membership test. ``sets`` are better optimized for that. * Added ``py-version`` config key (if ``[MASTER]`` section). Used for version dependant checks. Will default to whatever Python version pylint is executed with. * ``CodeStyleChecker`` Added ``consider-using-assignment-expr``: Emitted when an assignment is directly followed by an if statement and both can be combined by using an assignment expression ``:=``. Requires Python 3.8 * Added ``consider-using-f-string``: Emitted when .format() or \'%\' is being used to format a string. * Fix false positive for ``consider-using-with`` if a context manager is assigned to a variable in different paths of control flow (e. g. if-else clause). * https is now prefered in the documentation and http://pylint.pycqa.org correctly redirect to https://pylint.pycqa.org * Fix false positive for ``function-redefined`` for simple type annotations * Fix false positive for ``protected-access`` if a protected member is used in type hints of function definitions * Fix false positive ``dict-iter-missing-items`` for dictionaries only using tuples as keys * The ``unspecified-encoding`` checker now also checks calls to ``pathlib.Path().read_text()`` and ``pathlib.Path().write_text()`` * Fix false positive ``superfluous-parens`` for tuples created with inner tuples * Fix false positive ``unused-private-member`` for accessing attributes in a class using ``cls`` * Fix false positive ``unused-private-member`` for private staticmethods accessed in classmethods. * Extended ``consider-using-in`` check to work for attribute access. * Setting ``min-similarity-lines`` to 0 now makes the similarty checker stop checking for duplicate code * Fix a bug where pylint complained if the cache\'s parent directory does not exist * The ``global-variable-not-assigned`` checker now catches global variables that are never reassigned in a local scope and catches (reassigned) functions * Fix false positives for invalid-all-format that are lists or tuples at runtime * Fix ``no-self-use`` and ``docparams extension`` for async functions and methods. * Add documentation for ``pyreverse`` and ``symilar`` * Non symbolic messages with the wrong capitalisation now correctly trigger ``use-symbolic-message-instead`` * The ``consider-iterating-dictionary`` checker now also considers membership checks * The ``invalid-name`` message is now more detailed when using multiple naming style regexes.- Release 2.10.2 * We now use platformdirs instead of appdirs since the latter is not maintained. * Fix a crash in the checker raising ``shallow-copy-environ`` when failing to infer on ``copy.copy``- Release 2.10.1 * pylint does not crash when PYLINT_HOME does not exist.- Release 2.10.0 * pyreverse: add option to produce colored output. * pyreverse: add output in PlantUML format. * ``consider-using-with`` is no longer triggered if a context manager is returned from a function. * pylint does not crash with a traceback anymore when a file is problematic. It creates a template text file for opening an issue on the bug tracker instead. The linting can go on for other non problematic files instead of being impossible. * pyreverse: Show class has-a relationships inferred from the type-hint * Fixed a crash when importing beyond the top level package during ``import-error`` message creation * Added ``ignored-parents`` option to the design checker to ignore specific classes from the ``too-many-ancestors`` check (R0901). * Added ``unspecified-encoding``: Emitted when open() is called without specifying an encoding * Improved the Similarity checker performance. Fix issue with ``--min-similarity-lines`` used with ``--jobs``. * Don\'t emit ``no-member`` error if guarded behind if statement. * The default for ``PYLINTHOME`` is now the standard ``XDG_CACHE_HOME``, and pylint now uses ``appdirs``. * Added ``use-list-literal``: Emitted when ``list()`` is called with no arguments instead of using ``[]`` * Added ``use-dict-literal``: Emitted when ``dict()`` is called with no arguments instead of using ``{}`` * Added optional extension ``consider-ternary-expression``: Emitted whenever a variable is assigned in both branches of an if/else block. * Added optional extension ``while-used``: Emitted whenever a ``while`` loop is used. * Added ``forgotten-debug-statement``: Emitted when ``breakpoint``, ``pdb.set_trace`` or ``sys.breakpointhook`` calls are found * Fix false-positive of ``unused-private-member`` when using nested functions in a class * Fix crash for ``unused-private-member`` that occurred with nested attributes. * Fix a false positive for ``unused-private-member`` with class names * Fix false positives for ``superfluous-parens`` with walrus operator, ternary operator and inside list comprehension. * Added ``format-string-without-interpolation`` checker: Emitted when formatting is applied to a string without any variables to be replaced * Refactor of ``--list-msgs`` & ``--list-msgs-enabled``: both options now show whether messages are emittable with the current interpreter. * Fix false negative for ``used-before-assignment`` when the variable is assigned in an exception handler, but used outside of the handler. * Added ``disable-next`` option: allows using `# pylint: disable-next=msgid` to disable a message for the following line * Added ``redundant-u-string-prefix`` checker: Emitted when the u prefix is added to a string * Fixed ``cell-var-from-loop`` checker: handle cell variables in comprehensions within functions, and function default argument expressions. Also handle basic variable shadowing. * Fixed bug with ``cell-var-from-loop`` checker: it no longer has false negatives when both ``unused-variable`` and ``used-before-assignment`` are disabled. * Fix false postive for ``invalid-all-format`` if the list or tuple builtin functions are used * Config files can now contain environment variables * Fix false-positive ``used-before-assignment`` with an assignment expression in a ``Return`` node * Added ``use-sequence-for-iteration``: Emitted when iterating over an in-place defined ``set``. * ``CodeStyleChecker`` * Limit ``consider-using-tuple`` to be emitted only for in-place defined ``lists``. * Emit ``consider-using-tuple`` even if list contains a ``starred`` expression. * Ignore decorators lines by similarities checker when ignore signatures flag enabled * Allow ``true`` and ``false`` values in ``pylintrc`` for better compatibility with ``toml`` config. * Class methods\' signatures are ignored the same way as functions\' with similarities \"ignore-signatures\" option enabled * Improve performance when inferring ``Call`` nodes, by utilizing caching. * Improve error message for invalid-metaclass when the node is an Instance. * Fri Aug 20 2021 Ben Greiner - Unskip the numpy inference tests. Note: always check with a clean environment (osc build --clean) -- gh#PyCQA/pylint#4877 * Fri Aug 20 2021 Ben Greiner - Update to 2.9.6 * Fix a false positive undefined-variable when variable name in decoration matches function argument- Many more release notes from 2.9.0 to 2.9.5: * https://github.com/PyCQA/pylint/releases * Added time.clock to deprecated functions/methods for python 3.3 * No longer emit consider-using-with for ThreadPoolExecutor and ProcessPoolExecutor as they have legitimate use cases without a with block. * The similarity checker no longer add three trailing whitespaces for empty lines in its report. * Python 3.10 is now supported. * Added various deprecated functions/methods for python 3.10, 3.7, 3.6 and 3.3 * setuptools_scm has been removed and replaced by tbump in order to not have hidden runtime dependencies to setuptools- Drop pylint-pr4450-import-init.patch- Add pylint-pr4816-astroid27.patch * gh#PyCQA/pylint#4816 * remove astroid upper bound -- the previous pin broke a lot of packages through the pkg_resources check * Sun Jun 06 2021 Dirk Müller - update to 2.8.3: * pin astroid to 2.5.6 * Fri May 07 2021 Ben Greiner - Update to 2.8.2 * Keep ``__pkginfo__.numversion`` a tuple to avoid breaking pylint-django. * scm_setuptools has been added to the packaging. * Pylint\'s tags are now the standard form ``vX.Y.Z`` and not ``pylint-X.Y.Z`` anymore. * New warning message ``deprecated-class``. This message is emitted if import or call deprecated class of the standard library (like ``collections.Iterable`` that will be removed Python 3.10). * Add numversion back (temporarily) in __pkginfo__ because it broke Pylama and revert the unnecessary pylint.version beaking change.- Release 2.8.0 * New refactoring message ``consider-using-with``. This message is emitted if resource-allocating functions or methods of the standard library (like ``open()`` or ``threading.Lock.acquire() ``) that can be used as a context manager are called without a ``with`` block. * Resolve false positives on unused variables in decorator functions * Add new extension ``ConfusingConsecutiveElifChecker``. This optional checker emits a refactoring message (R5601 ``confusing-consecutive-elif``) if if/elif statements with different indentation levels follow directly one after the other. * New option ``--output=`` to output result to a file rather than printing to stdout. * Use a prescriptive message for ``unidiomatic-typecheck`` * Apply ``const-naming-style`` to module constants annotated with ``typing.Final`` * The packaging is now done via setuptools exclusively. ``doc``, ``tests``, ``man``, ``elisp`` and ``Changelog`` are not packaged anymore - reducing the size of the package by 75%. * Debian packaging is now (officially) done in https://salsa. debian.org/python-team/packages/pylint. * The \'doc\' extra-require has been removed. * ``__pkginfo__`` now only contain ``__version__`` (also accessible with ``pylint.__version__``), other meta-information are still accessible with ``from importlib import metadata;metadata. metadata(\'pylint\')``. * COPYING has been renamed to LICENSE for standardization. * Fix false-positive ``used-before-assignment`` in function returns. * Updated ``astroid`` to 2.5.3 * Add ``consider-using-min-max-builtin`` check for if statement which could be replaced by Python builtin min or max * Don\'t auto-enable postponed evaluation of type annotations with Python 3.10 * Update ``astroid`` to 2.5.4 * Add new extension ``TypingChecker``. This optional checker can detect the use of deprecated typing aliases and can suggest the use of the alternative union syntax where possible. (For example, \'typing.Dict\' can be replaced by \'dict\', and \'typing.Unions\' by \'|\', etc.) Make sure to check the config options if you plan on using it! * Reactivates old counts in report mode. * During detection of ``inconsistent-return-statements`` consider that ``assert False`` is a return node. * Run will not fail if score exactly equals ``config. fail_under``. * Functions that never returns may declare ``NoReturn`` as type hints, so that ``inconsistent-return-statements`` is not emitted. * Improved protected access checks to allow access inside class methods * Fix issue with PEP 585 syntax and the use of ``collections. abc. Set`` * Fix issue that caused class variables annotated with ``typing. ClassVar`` to be identified as class constants. Now, class variables nnotated with ``typing.Final`` are identified as such. * Continuous integration with read the doc has been added. * Don\'t show ``DuplicateBasesError`` for attribute access * Fix crash when checking ``setup.cfg`` for pylint config when there are non-ascii characters in there * Allow code flanked in backticks to be skipped by spellchecker * Allow Python tool directives (for black, flake8, zimports, isort, mypy, bandit, pycharm) at beginning of comments to be skipped by spellchecker * Fix issue that caused emacs pylint to fail when used with tramp * Improve check for invalid PEP 585 syntax inside functions if postponed evaluation of type annotations is enabled * Improve check for invalid PEP 585 syntax as default function arguments- Release 2.7.4 * Fix a problem with disabled msgid not being ignored * Fix issue with annotated class constants- Release 2.7.3 * Introduce logic for checking deprecated attributes in DeprecationMixin. * Reduce usage of blacklist/whitelist terminology. Notably, ``extension-pkg-allow-list`` is an alternative to ``extension-pkg-whitelist`` and the message ``blacklisted-name`` is now emitted as ``disallowed-name``. The previous names are accepted to maintain backward compatibility. * Move deprecated checker to ``DeprecatedMixin`` * Bump ``astroid`` version to ``2.5.2`` * Fix false positive for ``method-hidden`` when using private attribute and method * ``use-symbolic-message-instead`` now also works on legacy messages like ``C0111`` (``missing-docstring``). * Remove unwanted print to stdout from ``_emit_no_member`` * Introduce a command-line option to specify pyreverse output directory * Fix issue with Enums and ``class-attribute-naming-style=snake_case`` * Add ``allowed-redefined-builtins`` option for fine tuning ``redefined-builtin`` check. * Fix issue when executing with ``python -m pylint`` * Exempt ``typing.TypedDict`` from ``too-few-public-methods`` check. * Fix false-positive ``no-member`` for typed annotations without default value. * Add ``--class-const-naming-style`` for Enum constants and class variables annotated with ``typing.ClassVar`` * Fix astroid.Inference error for undefined-variables with ``len()``` * Fix column index on FIXME warning messages * Improve handling of assignment expressions, better edge case handling * Improve check if class is subscriptable PEP585 * Fix documentation and filename handling of --import-graph * Fix false-positive for ``unused-import`` on class keyword arguments * Fix regression with plugins on PYTHONPATH if latter is cwd- Add pylint-pr4450-import-init.patch gh#PyCQA/pylint#4450 fix broken tests * Mon Mar 22 2021 Ben Greiner - Update to 2.7.2 * Fix False Positive on ``Enum.__members__.items()``, ``Enum.__members__.values``, and ``Enum.__members__.keys`` * Properly strip dangerous sys.path entries (not just the first one) * Workflow and packaging improvements- Release 2.7.1 * Expose ``UnittestLinter`` in pylint.testutils * Don\'t check directories starting with \'.\' when using register_plugins- Release 2.7.0 * Introduce DeprecationMixin for reusable deprecation checks. * Fix false positive for ``builtin-not-iterating`` when ``map`` receives iterable * Python 3.6+ is now required. * Fix false positive for ``builtin-not-iterating`` when ``zip`` receives iterable * Add ``nan-comparison`` check for NaN comparisons * Bug fix for empty-comment message line number. * Only emit ``bad-reversed-sequence`` on dictionaries if below py3.8 * Handle class decorators applied to function. * Add check for empty comments * Fix minor documentation issue in contribute.rst * Enums are now required to be named in UPPER_CASE by ``invalid-name``. * Add missing checks for deprecated functions. * Postponed evaluation of annotations are now recognized by default if python version is above 3.10 * Fix column metadata for anomalous backslash lints * Drop support for Python 3.5 * Add support for pep585 with postponed evaluation * Check alternative union syntax - PEP 604 * Fix multiple false positives with assignment expressions * Fix TypedDict inherit-non-class false-positive Python 3.9+ * Fix issue with nested PEP 585 syntax * Fix issue with nested PEP 604 syntax * Fix a crash in ``undefined-variable`` caused by chained attributes in metaclass * Fix false positive for ``not-async-context-manager`` when ``contextlib.asynccontextmanager`` is used * Fix linter multiprocessing pool shutdown (triggered warnings when runned in parallels with other pytest plugins) * Fix a false-positive emission of ``no-self-use`` and ``unused-argument`` for methods of generic structural types (`Protocol[T]`) * Fix bug that lead to duplicate messages when using ``--jobs 2`` or more. * Adds option ``check-protected-access-in-special-methods`` in the ClassChecker to activate/deactivate ``protected-access`` message emission for single underscore prefixed attribute in special methods. * Fix vulnerable regular expressions in ``pyreverse`` * ``inconsistent-return-statements`` message is now emitted if one of ``try/except`` statement is not returning explicitly while the other do. * Fix ``useless-super-delegation`` false positive when default keyword argument is a dictionnary. * Fix a crash when a specified config file does not exist * Add support to ``ignored-argument-names`` in DocstringParameterChecker and adds ``useless-param-doc`` and ``useless-type-doc`` messages. * Enforce docparams consistently when docstring is not present * Fix ``duplicate-code`` false positive when lines only contain whitespace and non-alphanumeric characters (e.g. parentheses, bracket, comman, etc.) * Improve lint message for ``singleton-comparison`` with bools * Fix spell-checker crash on indented docstring lines that look like # comments * Fix AttributeError in checkers/refactoring.py * Improve sphinx directives spelling filter * Fix a bug with postponed evaluation when using aliases for annotations. * Fix minor documentation issues * Improve the performance of the line length check. * Removed incorrect deprecation of ``inspect.getfullargspec`` * Fix ``signature-differs`` false positive for functions with variadics * Fix a crash in ``consider-using-enumerate`` when encountering ``range()`` without arguments * ``len-as-conditions`` is now triggered only for classes that are inheriting directly from list, dict, or set and not implementing the ``__bool__`` function, or from generators like range or list/dict/set comprehension. This should reduce the false positives for other classes, like pandas\'s DataFrame or numpy\'s Array. * Fixes duplicate-errors not working with -j2+ * ``generated-members`` now matches the qualified name of members * Add check for bool function to ``len-as-condition`` * Add ``simplifiable-condition`` check for extraneous constants in conditionals using and/or. * Add ``condition-evals-to-constant`` check for conditionals using and/or that evaluate to a constant. * Changed setup.py to work with distlib * New check: ``consider-using-generator`` This check warns when a comprehension is used inside an ``any`` or ``all`` function, since it is unnecessary and should be replaced by a generator instead. Using a generator would be less code and way faster. * Add Github Actions to replace Travis and AppVeyor in the future * Tue Feb 16 2021 Michael Ströder - Update to 2.6.2 (no ChangeLog entry for this version) * Tue Feb 16 2021 Michael Ströder - Update to 2.6.1 * Astroid version has been set as < 2.5 (#4093)
|
|
|