Blob Blame History Raw
Name:           pylint
Version:        2.13.7
Release:        %autorelease
Summary:        Analyzes Python code looking for bugs and signs of poor quality
License:        GPLv2+
URL:            https://www.pylint.org/
Source0:        %{pypi_source}

BuildArch:      noarch

BuildRequires:  python3-devel
BuildRequires:  python3-setuptools
BuildRequires:  python3-toml
# For tests
BuildRequires:  python3-astroid >= 2.8.0
BuildRequires:  python3-isort
BuildRequires:  python3-mccabe
BuildRequires:  python3-pytest
BuildRequires:  python3-pytest-runner

# For the main pylint package
Requires:       python3-%{name} = %{version}-%{release}

%global _description %{expand:
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.}

%description %_description

%package -n python3-%{name}
Summary:        %{summary}
Requires:       python3-astroid >= 2.3.0
Requires:       python3-setuptools
Requires:       python3-mccabe
Requires:       python3-isort
Obsoletes:      python3-pylint-gui < 1.7
%{?python_provide:%python_provide python3-%{name}}

%description -n python3-%{name} %_description

%prep
%autosetup -p1

%build
%py3_build

%install
%py3_install
rm -rf %{buildroot}%{python3_sitelib}/pylint/test

# Add -%%{python3_version} to the binaries and manpages for backwards compatibility
for NAME in epylint pylint pyreverse symilar; do
    mv %{buildroot}%{_bindir}/{$NAME,${NAME}-%{python3_version}}
    ln -s ${NAME}-%{python3_version} %{buildroot}%{_bindir}/${NAME}-3
    ln -s ${NAME}-%{python3_version} %{buildroot}%{_bindir}/${NAME}
done

#%check
#export PYTHONPATH=%{buildroot}%{python3_sitelib}
#%{__python3} bin/pylint -rn --rcfile=pylintrc --load-plugins=pylint.extensions.docparams, pylint.extensions.mccabe pylint || :
## Skip failing tests.
#%{__python3} -m pytest -v -k "not (test_by_module_statement_value or import_outside_toplevel or deprecated_methods_py38 or member_checks_py37)"

%files
%doc CONTRIBUTORS.txt
%license LICENSE
%{_bindir}/epylint
%{_bindir}/pylint
%{_bindir}/pyreverse
%{_bindir}/symilar

%files -n python3-%{name}
%license LICENSE
%{python3_sitelib}/pylint*
# backwards compatible versioned executables and manpages:
%{_bindir}/*-3
%{_bindir}/*-%{python3_version}

%changelog
%autochangelog