14
0
forked from pool/python-pylint
Files
python-pylint/python-pylint.spec
Dirk Mueller 0e0f3b8099 Accepting request 925619 from home:bnavigator:branches:devel:languages:python
- 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
2021-10-16 09:40:35 +00:00

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