forked from pool/python-pylint
- 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 OBS-URL: https://build.opensuse.org/request/show/880524 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylint?expand=0&rev=120
113 lines
3.6 KiB
RPMSpec
113 lines
3.6 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.7.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
|
|
BuildRequires: %{python_module setuptools}
|
|
BuildRequires: fdupes
|
|
BuildRequires: python-rpm-macros
|
|
Requires: python-astroid >= 2.5.1
|
|
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 isort >= 4.2.5}
|
|
BuildRequires: %{python_module mccabe >= 0.6}
|
|
BuildRequires: %{python_module pytest-benchmark}
|
|
BuildRequires: %{python_module pytest-runner}
|
|
BuildRequires: %{python_module pytest-xdist}
|
|
BuildRequires: %{python_module pytest}
|
|
BuildRequires: %{python_module toml >= 0.7.1}
|
|
%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
|
|
%setup -q -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"
|
|
# need the local dir for imports from tests ...
|
|
export PYTHONPATH=$(pwd)
|
|
# ... but make sure that we import from installed package
|
|
mv pylint pylint.tmp
|
|
%pytest --benchmark-disable
|
|
mv pylint.tmp pylint
|
|
%endif
|
|
|
|
%post
|
|
%python_install_alternative pylint epylint pyreverse symilar
|
|
|
|
%postun
|
|
%python_uninstall_alternative pylint
|
|
|
|
%files %{python_files}
|
|
%license COPYING
|
|
%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
|