From 33e9865385be9c4941288c466f376979ae8799e8d9023cf7b13074edcd87c4ef Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Fri, 7 May 2021 21:05:34 +0000 Subject: [PATCH] Accepting request 891349 from home:bnavigator:branches:devel:languages:python ----------------------------------------------------------------- - 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 OBS-URL: https://build.opensuse.org/request/show/891349 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=122 --- pylint-2.7.2.tar.gz | 3 - pylint-2.8.2.tar.gz | 3 + pylint-pr4450-import-init.patch | 47 +++++++++++ python-pylint.changes | 136 ++++++++++++++++++++++++++++++++ python-pylint.spec | 24 +++--- 5 files changed, 201 insertions(+), 12 deletions(-) delete mode 100644 pylint-2.7.2.tar.gz create mode 100644 pylint-2.8.2.tar.gz create mode 100644 pylint-pr4450-import-init.patch diff --git a/pylint-2.7.2.tar.gz b/pylint-2.7.2.tar.gz deleted file mode 100644 index 41c535f..0000000 --- a/pylint-2.7.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0e21d3b80b96740909d77206d741aa3ce0b06b41be375d92e1f3244a274c1f8a -size 709177 diff --git a/pylint-2.8.2.tar.gz b/pylint-2.8.2.tar.gz new file mode 100644 index 0000000..e26829e --- /dev/null +++ b/pylint-2.8.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:586d8fa9b1891f4b725f587ef267abe2a1bad89d6b184520c7f07a253dd6e217 +size 745627 diff --git a/pylint-pr4450-import-init.patch b/pylint-pr4450-import-init.patch new file mode 100644 index 0000000..01025c2 --- /dev/null +++ b/pylint-pr4450-import-init.patch @@ -0,0 +1,47 @@ +From 4ad9037c5e2fde8f598ad92b24d07cb7abac6c2b Mon Sep 17 00:00:00 2001 +From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> +Date: Fri, 7 May 2021 14:45:42 +0200 +Subject: [PATCH] Fix broken tests + +--- + tests/test_self.py | 22 +++++++++++++--------- + 1 file changed, 13 insertions(+), 9 deletions(-) + +diff --git a/tests/test_self.py b/tests/test_self.py +index 55cfbbc82..7f26ddeb3 100644 +--- a/tests/test_self.py ++++ b/tests/test_self.py +@@ -1077,20 +1077,24 @@ def test_allow_import_of_files_found_in_modules_during_parallel_check(self, tmpd + code=0, + ) + +- def test_can_list_directories_without_dunder_init(self, tmpdir): ++ @staticmethod ++ def test_can_list_directories_without_dunder_init(tmpdir): + test_directory = tmpdir / "test_directory" + test_directory.mkdir() + spam_module = test_directory / "spam.py" + spam_module.write("'Empty'") + +- with tmpdir.as_cwd(): +- self._runtest( +- [ +- "--disable=missing-docstring, missing-final-newline", +- "test_directory", +- ], +- code=0, +- ) ++ subprocess.check_output( ++ [ ++ sys.executable, ++ "-m", ++ "pylint", ++ "--disable=missing-docstring, missing-final-newline", ++ "test_directory", ++ ], ++ cwd=str(tmpdir), ++ stderr=subprocess.PIPE, ++ ) + + def test_jobs_score(self): + path = join(HERE, "regrtest_data", "unused_variable.py") diff --git a/python-pylint.changes b/python-pylint.changes index ece0b41..85d9c66 100644 --- a/python-pylint.changes +++ b/python-pylint.changes @@ -1,3 +1,139 @@ +----------------------------------------------------------------- +Fri May 7 14:41:41 UTC 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 13:00:31 UTC 2021 - Ben Greiner diff --git a/python-pylint.spec b/python-pylint.spec index d8e47a9..f99cc22 100644 --- a/python-pylint.spec +++ b/python-pylint.spec @@ -20,22 +20,25 @@ %bcond_without tests %define skip_python2 1 Name: python-pylint -Version: 2.7.2 +Version: 2.8.2 Release: 0 Summary: Syntax and style checker for Python code License: GPL-2.0-or-later Group: Development/Languages/Python URL: https://github.com/pycqa/pylint Source: https://files.pythonhosted.org/packages/source/p/pylint/pylint-%{version}.tar.gz +# PATCH-FIX-UPSTREAM pylint-pr4450-import-init.patch -- gh#PyCQA/pylint#4450 fix broken tests +Patch1: https://github.com/PyCQA/pylint/pull/4450.patch#/pylint-pr4450-import-init.patch +BuildRequires: %{python_module setuptools_scm} BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros -Requires: python-astroid >= 2.5.1 +Requires: python-astroid >= 2.5.6 Requires: python-isort >= 4.2.5 Requires: python-mccabe >= 0.6 Requires: python-toml >= 0.7.1 %if %{with tests} -BuildRequires: %{python_module astroid >= 2.5.1} +BuildRequires: %{python_module astroid >= 2.5.6} BuildRequires: %{python_module isort >= 4.2.5} BuildRequires: %{python_module mccabe >= 0.6} BuildRequires: %{python_module pytest-benchmark} @@ -66,7 +69,7 @@ customizable, and you can easily write a small plugin to add a personal feature. %prep -%setup -q -n pylint-%{version} +%autosetup -p1 -n pylint-%{version} sed -i '1{/^#!/ d}' pylint/__main__.py %build @@ -84,11 +87,14 @@ done %if %{with tests} %check export LC_ALL="en_US.UTF-8" -# need the local dir for imports from tests ... -export PYTHONPATH=$(pwd) -# ... but make sure that we import from installed package +# The test suite tampers with the PYTHONPATH, e.g. upstreams fix for +# https://github.com/PyCQA/pylint/issues/3636 +# so make sure that the macro set PYTHONPATH does not result in conflicting imports mv pylint pylint.tmp -%pytest --benchmark-disable +%pytest --benchmark-disable --ignore tests/test_epylint.py +# result of the mentioned tampering: other tests must not have pwd in PYTHONPATH, but test_epylint needs it +export PYTHONPATH=$PWD +%pytest --benchmark-disable tests/test_epylint.py mv pylint.tmp pylint %endif @@ -99,7 +105,7 @@ mv pylint.tmp pylint %python_uninstall_alternative pylint %files %{python_files} -%license COPYING +%license LICENSE %doc ChangeLog README.rst %doc examples/ %python_alternative %{_bindir}/pylint