SHA256
1
0
forked from pool/python-isort
python-isort/python-isort.spec

145 lines
4.6 KiB
RPMSpec
Raw Normal View History

#
# spec file for package python-isort
#
# Copyright (c) 2020 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.5.1
Release: 0
Summary: A Python utility / library to sort Python imports
License: MIT
URL: https://pycqa.github.io/isort/
# only PyPI archive contains setup.py
Source: https://files.pythonhosted.org/packages/source/i/isort/isort-%{version}.tar.gz
# ... but test data are not packaged for PyPI, get them from git sources
Source1: https://github.com/PyCQA/isort/archive/%{version}.tar.gz#/isort-%{version}-gh.tar.gz
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-setuptools
Requires(post): update-alternatives
Requires(postun): update-alternatives
Recommends: python-hypothesmith
Recommends: python-pip-api
Recommends: python-pipreqs
Recommends: python-requirementslib >= 1.5.4
Recommends: python-tomlkit
Suggests: git
BuildArch: noarch
%if %{with test}
BuildRequires: %{python_module black}
BuildRequires: %{python_module hypothesis-auto}
BuildRequires: %{python_module hypothesmith}
# we cannot just use the source dir on test flavor because tests expect the
# installed entrypoint (through alternatives)
BuildRequires: %{python_module isort = %{version}}
BuildRequires: %{python_module libcst}
BuildRequires: %{python_module mock}
BuildRequires: %{python_module pip-api}
BuildRequires: %{python_module pipreqs}
BuildRequires: %{python_module poetry}
BuildRequires: %{python_module pylama}
BuildRequires: %{python_module pytest-mock}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module requirementslib >= 1.5.4}
BuildRequires: %{python_module tomlkit}
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
%if %{with test}
tar -x --strip-components=1 -f %{SOURCE1} \
isort-%{version}/example_isort_formatting_plugin \
isort-%{version}/example_shared_isort_profile \
isort-%{version}/.isort.cfg \
isort-%{version}/setup.cfg
%endif
%if !%{with test}
%build
%python_build
%endif
%if !%{with test}
%install
%python_install
%python_expand rm -r %{buildroot}%{$python_sitelib}/tests/
%python_clone -a %{buildroot}%{_bindir}/isort
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%endif
%if %{with test}
%check
%{python_expand # create egg-info for example projects
for exampledir in example_shared_isort_profile example_isort_formatting_plugin; do
pushd $exampledir
# don't enforce exact same environment as upstream's devel project
rm poetry.lock
# no dependency download, we have them all by BuildRequires
sed -i '/tool.poetry.dependencies/,/^$/ d' pyproject.toml
poetry-%{$python_bin_suffix} install
# append current dir, only use colon if not empty
export PYTHONPATH="${PYTHONPATH:+$PYTHONPATH:}$(pwd)"
popd
done
}
# test_projects_using_isort.py: these tests try to clone from
# online git repositories.
%{pytest -W "ignore::UserWarning" \
-W "ignore::DeprecationWarning" \
--ignore tests/integration/test_projects_using_isort.py
}
%endif
%if !%{with test}
%post
%python_install_alternative isort
%postun
%python_uninstall_alternative isort
%files %{python_files}
%doc README.md
Accepting request 505500 from home:sebix:branches:devel:languages:python - update description - install LICENSE as %license if possible - update to 4.2.15 * Fixed certain one line imports not being successfully wrapped - update to 4.2.14 * Fixed #559 & #565: Added missing standard library imports - update to 4.2.13 * Fixed #553: Check only and --diff now work together again - update to 4.2.12 * Fixed a problem with the wheel distribution - update to 4.2.11 * Fixed #546: Can't select y/n/c after latest update * Fixed #545: Incorrectly moves future imports above encoding comments - update to 4.2.9 * Fixed #428: Check only modifies sorting * Fixed #540: Not correctly identifying stdlib modules - update to 4.2.8 * Added --virtual-env switch command line option * Added --enforce-whitespace option to go along with --check-only for more exact checks (issue #423) * Fixed imports with a tailing '' and no space in-between getting removed (issue #425) * Fixed issue #299: long lines occasionally not wrapped * Fixed issue #432: No longer add import inside class when class starts at top of file after encoding comment * Fixed issue #440: Added missing --use-parentheses option to command line tool and documentation * Fixed issue #496: import* imports now get successfully identified and reformatted instead of deleted * Fixed issue #491: Non ending parentheses withing single line comments no longer cause formatting issues * Fixed issue #471: Imports that wrap the maximum line length and contain comments on the last line are no longer rendered incorrectly * Fixed issue #436: Force sort within section no longer rearranges comments * Fixed issue #473: Force_to_top and force_sort_within_sections now work together * Fixed issue #484 & #472: Consistent output with imports of same spelling but different case * Fixed issue #433: No longer incorrectly add an extra new-line when comment between imports and function definition OBS-URL: https://build.opensuse.org/request/show/505500 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-isort?expand=0&rev=4
2017-06-23 17:12:16 +00:00
%license LICENSE
%python_alternative %{_bindir}/isort
%{python_sitelib}/isort
%{python_sitelib}/isort-%{version}-py*.egg-info
%endif
%changelog