python-isort/python-isort.spec
Sebastian Wagner 0b7bb02c6e - update to version 5.9.1:
- Fixed #1758: projects with many files and skip_ignore set can lead to a command-line overload.
- update to version 5.9.0:
    - Improved CLI startup time.
    - Implemented #1697: Provisional support for PEP 582: skip `__pypackages__` directories by default.
    - Implemented #1705: More intuitive handling of isort:skip_file comments on streams.
    - Implemented #1737: Support for using action comments to avoid adding imports to individual files.
    - Implemented #1750: Ability to customize output format lines.
    - Implemented #1732: Support for custom sort functions.
    - Implemented #1722: Improved behavior for running isort in atomic mode over Cython source files.
    - Fixed (https://github.com/PyCQA/isort/pull/1695): added imports being added to doc string in some cases.
    - Fixed (https://github.com/PyCQA/isort/pull/1714): in rare cases line continuation combined with tabs can output invalid code.
    - Fixed (https://github.com/PyCQA/isort/pull/1726): isort ignores reverse_sort when force_sort_within_sections is true.
    - Fixed #1741: comments in hanging indent modes can lead to invalid code.
    - Fixed #1744: repeat noqa comments dropped when * import and non * imports exist from the same package.
    - Fixed #1721: repeat noqa comments on separate from lines with force-single-line set, sometimes get dropped.
 - Goal Zero (Tickets related to aspirational goal of achieving 0 regressions for remaining 5.0.0 lifespan):
    - Implemented #1394: 100% branch coverage (in addition to line coverage) enforced.
    - Implemented #1751: Strict typing enforcement (turned on mypy strict mode).

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-isort?expand=0&rev=80
2021-07-04 19:18:19 +00:00

149 lines
5.0 KiB
RPMSpec
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#
# spec file
#
# 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() python-%{**} python3-%{**}}
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%define psuffix -test
%bcond_without test
%else
%define psuffix %{nil}
%bcond_with test
%endif
%define skip_python2 1
Name: python-isort%{psuffix}
Version: 5.9.1
Release: 0
Summary: A Python utility / library to sort Python imports
License: MIT
URL: https://pycqa.github.io/isort/
# tests and example projects are not packaged for PyPI, get them from Github
Source: https://github.com/PyCQA/isort/archive/%{version}.tar.gz#/isort-%{version}-gh.tar.gz
BuildRequires: %{python_module pip}
BuildRequires: %{python_module poetry-core}
BuildRequires: fdupes
BuildRequires: python-rpm-macros >= 20210127.3a18043
Requires: python-setuptools
Requires(post): update-alternatives
Requires(postun):update-alternatives
Recommends: python-colorama >= 0.4.3
Recommends: python-pip-api
Recommends: python-pipreqs
Recommends: python-requirementslib
Suggests: git
BuildArch: noarch
%if %{with test}
BuildRequires: %{python_module black}
BuildRequires: %{python_module colorama >= 0.4.3}
BuildRequires: %{python_module hypothesis-auto}
BuildRequires: %{python_module hypothesmith}
BuildRequires: %{python_module libcst}
BuildRequires: %{python_module pip-api}
BuildRequires: %{python_module pipreqs}
BuildRequires: %{python_module poetry}
BuildRequires: %{python_module pylama}
BuildRequires: %{python_module pytest > 6.0}
BuildRequires: %{python_module pytest-mock}
# requirementslib not ready for python 3.9 yet -- gh#sarugaku/requirementslib#288
BuildRequires: %{python_module requirementslib >= 1.5 if %python-base < 3.9}
BuildRequires: git
%endif
%python_subpackages
%description
isort your python imports for you so you dont have to.
isort is a Python utility / library to sort imports alphabetically, and
automatically separated into sections and by type. It provides a command line
utility, Python library and plugins for various editors to quickly sort all your
imports. It requires Python 3.6+ to run but supports formatting Python 2 code
too.
%prep
%setup -q -n isort-%{version}
chmod -x LICENSE
%build
%pyproject_wheel
%if !%{with test}
%install
%pyproject_install
%python_clone -a %{buildroot}%{_bindir}/isort
%python_clone -a %{buildroot}%{_bindir}/isort-identify-imports
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%endif
%if %{with test}
%check
# test_projects_using_isort.py: these tests try to clone from online git repositories.
ignoretests="--ignore tests/integration/test_projects_using_isort.py"
# test_setting_combinations.py::test_isort_is_idempotent
# is flaky https://github.com/PyCQA/isort/issues/1466
donttest="(test_setting_combinations and test_isort_is_idempotent)"
# requirementslib is not available yet for python39
# https://github.com/sarugaku/requirementslib/issues/288
python39_donttest=" or (test_deprecated_finders and test_pipfile_finder)"
ORIGPATH=$PATH
%{python_expand # install isort and required example projects into custom root
mkdir isort-test-%{$python_bin_suffix}
export PATH="$(pwd)/isort-test-%{$python_bin_suffix}/usr/bin:$ORIGPATH"
export PYTHONPATH="$(pwd)/isort-test-%{$python_bin_suffix}%{$python_sitelib}"
export PYTHONDONTWRITEBYTECODE=1
for proj in build/isort-%{version}-py3-none-any.whl ./example_shared_isort_profile ./example_isort_formatting_plugin; do
$python -m pip install --verbose \
--no-index \
--root $(pwd)/isort-test-%{$python_bin_suffix} \
--no-deps \
--use-pep517 \
--no-cache-dir\
--no-build-isolation \
--progress-bar off \
--disable-pip-version-check \
${proj}
done
pytest-%{$python_bin_suffix} -v \
-W "ignore::UserWarning" \
-W "ignore::DeprecationWarning" \
${ignoretests} \
-k "not (${donttest} ${$python_donttest})"
}
%endif
%if !%{with test}
%post
%python_install_alternative isort isort-identify-imports
%postun
%python_uninstall_alternative isort
%files %{python_files}
%doc README.md
%license LICENSE
%python_alternative %{_bindir}/isort
%python_alternative %{_bindir}/isort-identify-imports
%{python_sitelib}/isort
%{python_sitelib}/isort-%{version}.dist-info
%endif
%changelog