forked from pool/python-pylint
- Dropped pylint-pr4816-astroid27.patch - 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. - Unskip the numpy inference tests. Note: always check with a clean environment (osc build --clean) -- gh#PyCQA/pylint#4877 OBS-URL: https://build.opensuse.org/request/show/925619 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=127
122 lines
4.1 KiB
RPMSpec
122 lines
4.1 KiB
RPMSpec
#
|
|
# spec file for package python-pylint
|
|
#
|
|
# Copyright (c) 2021 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%{?!python_module:%define python_module() python3-%{**}}
|
|
%bcond_without tests
|
|
%define skip_python2 1
|
|
Name: python-pylint
|
|
Version: 2.11.1
|
|
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
|
|
# Tests are no longer packaged in the PyPI sdist, use GitHub archive
|
|
Source: https://github.com/PyCQA/pylint/archive/refs/tags/v%{version}.tar.gz#/pylint-%{version}-gh.tar.gz
|
|
BuildRequires: %{python_module setuptools}
|
|
BuildRequires: fdupes
|
|
BuildRequires: python-rpm-macros
|
|
Requires: python-astroid >= 2.8
|
|
Requires: python-isort >= 4.2.5
|
|
Requires: python-mccabe >= 0.6
|
|
Requires: python-platformdirs >= 2.2
|
|
Requires: python-toml >= 0.7.1
|
|
%if 0%{?python_version_nodots} < 310
|
|
Requires: python-typing-extensions >= 3.10
|
|
%endif
|
|
%if %{with tests}
|
|
BuildRequires: %{python_module astroid >= 2.8}
|
|
BuildRequires: %{python_module isort >= 4.2.5}
|
|
BuildRequires: %{python_module mccabe >= 0.6}
|
|
BuildRequires: %{python_module platformdirs >= 2.2}
|
|
BuildRequires: %{python_module pytest-benchmark}
|
|
BuildRequires: %{python_module pytest-xdist}
|
|
BuildRequires: %{python_module pytest}
|
|
BuildRequires: %{python_module toml >= 0.7.1}
|
|
BuildRequires: %{python_module typing-extensions >= 3.10}
|
|
%endif
|
|
Requires(post): update-alternatives
|
|
Requires(postun):update-alternatives
|
|
BuildArch: noarch
|
|
%python_subpackages
|
|
|
|
%description
|
|
Pylint analyzes Python source code looking for bugs and signs of poor
|
|
quality.
|
|
|
|
Pylint is a python tool that checks if a module satisfies a coding
|
|
standard. Pylint can be seen as another PyChecker since nearly all
|
|
tests you can do with PyChecker can also be done with Pylint. But
|
|
Pylint offers some more features, like checking line-code's length,
|
|
checking if variable names are well-formed according to your coding
|
|
standard, or checking if declared interfaces are truly implemented, and
|
|
much more (see the complete check list).
|
|
|
|
The big advantage with Pylint is that it is highly configurable,
|
|
customizable, and you can easily write a small plugin to add a personal
|
|
feature.
|
|
|
|
%prep
|
|
%autosetup -p1 -n pylint-%{version}
|
|
sed -i '1{/^#!/ d}' pylint/__main__.py
|
|
|
|
%build
|
|
export LC_ALL="en_US.UTF-8"
|
|
%python_build
|
|
|
|
%install
|
|
export LC_ALL="en_US.UTF-8"
|
|
%python_install
|
|
for p in pylint epylint pyreverse symilar ; do
|
|
%python_clone -a %{buildroot}%{_bindir}/$p
|
|
done
|
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
|
|
|
%if %{with tests}
|
|
%check
|
|
export LC_ALL="en_US.UTF-8"
|
|
# 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 --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
|
|
|
|
%post
|
|
%python_install_alternative pylint epylint pyreverse symilar
|
|
|
|
%postun
|
|
%python_uninstall_alternative pylint
|
|
|
|
%files %{python_files}
|
|
%license LICENSE
|
|
%doc ChangeLog README.rst
|
|
%doc examples/
|
|
%python_alternative %{_bindir}/pylint
|
|
%python_alternative %{_bindir}/epylint
|
|
%python_alternative %{_bindir}/pyreverse
|
|
%python_alternative %{_bindir}/symilar
|
|
%{python_sitelib}/pylint/
|
|
%{python_sitelib}/pylint-%{version}-py*.egg-info
|
|
|
|
%changelog
|