15
0
forked from pool/python-isort

- Raise suse_version to disable pymama tests to <= 1600

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-isort?expand=0&rev=123
This commit is contained in:
2025-05-02 09:34:05 +00:00
committed by Git OBS Bridge
commit 2d2761fe58
9 changed files with 1294 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.osc

3
_multibuild Normal file
View File

@@ -0,0 +1,3 @@
<multibuild>
<flavor>test</flavor>
</multibuild>

13
fix-typo.patch Normal file
View File

@@ -0,0 +1,13 @@
Index: isort-6.0.1/isort/deprecated/finders.py
===================================================================
--- isort-6.0.1.orig/isort/deprecated/finders.py
+++ isort-6.0.1/isort/deprecated/finders.py
@@ -309,7 +309,7 @@ class RequirementsFinder(ReqsBaseFinder)
for subfile_name in os.listdir(full_path):
results.extend(
os.path.join(full_path, subfile_name)
- for ext in cls.ext # type: ignore[attr-defined]
+ for ext in cls.exts # type: ignore[attr-defined]
if subfile_name.endswith(ext)
)
continue

BIN
isort-5.13.2-gh.tar.gz LFS Normal file

Binary file not shown.

BIN
isort-6.0.1.tar.gz LFS Normal file

Binary file not shown.

1008
python-isort.changes Normal file

File diff suppressed because it is too large Load Diff

188
python-isort.spec Normal file
View File

@@ -0,0 +1,188 @@
#
# spec file for package python-isort
#
# Copyright (c) 2025 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/
#
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%define psuffix -test
%bcond_without test
%else
%define psuffix %{nil}
%bcond_with test
%endif
%if 0%{?suse_version} <= 1600
%bcond_with pylama
%else
%bcond_without pylama
%endif
%{?sle15_python_module_pythons}
Name: python-isort%{psuffix}
Version: 6.0.1
Release: 0
Summary: A Python utility / library to sort Python imports
License: MIT
URL: https://pycqa.github.io/isort/
Source: https://files.pythonhosted.org/packages/source/i/isort/isort-%{version}.tar.gz
# PATCH-FIX-UPSTREAM fix-typo.patch gh#PyCQA/isort/2392
Patch: fix-typo.patch
BuildRequires: %{python_module base >= 3.9}
BuildRequires: %{python_module hatch-vcs}
BuildRequires: %{python_module hatchling}
BuildRequires: %{python_module pip}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires(post): update-alternatives
Requires(postun): update-alternatives
Recommends: python-colorama >= 0.4.3
Recommends: python-pip-api
Recommends: python-pip-shims >= 0.5.2
Recommends: python-pipreqs
Recommends: python-setuptools
Suggests: git-core
BuildArch: noarch
%if %{with test}
BuildRequires: %{python_module black}
BuildRequires: %{python_module colorama >= 0.4.3}
BuildRequires: %{python_module hypothesmith}
BuildRequires: %{python_module isort == %{version}}
BuildRequires: %{python_module libcst}
BuildRequires: %{python_module natsort}
BuildRequires: %{python_module pip-api}
BuildRequires: %{python_module pipreqs}
%if %{with pylama}
BuildRequires: %{python_module pylama}
%endif
BuildRequires: %{python_module pytest > 6.0}
BuildRequires: %{python_module pytest-mock}
BuildRequires: %{python_module toml >= 0.10.2}
BuildRequires: git-core
%endif
%python_subpackages
%description
isort your python imports for you so you don't 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.9+ to run but supports formatting Python 2 code
too.
%prep
%autosetup -p1 -n isort-%{version}
chmod -x LICENSE
%if %{without pylama}
sed -i '/import isort.pylama_isort/d' tests/unit/test_importable.py
%endif
echo "
# increase test deadline for slow obs executions
import hypothesis
hypothesis.settings.register_profile(
'obs',
deadline=5000,
suppress_health_check=[hypothesis.HealthCheck.too_slow]
)
" >> tests/conftest.py
%build
# Note: we also need the wheel for testing
%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"
# don't run benchmarks
ignoretests+=" --ignore tests/benchmark"
%if %{without pylama}
ignoretests+=" --ignore tests/unit/test_pylama_isort.py"
%endif
# 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)"
# https://github.com/PyCQA/isort/issues/2171
donttest+=" or (test_hypothesmith and test_isort_is_idempotent)"
# The package python-requirementslib is not available anymore.
# It's a deprecated finder for isort so we drop it
# https://github.com/sarugaku/requirementslib/issues/288
donttest+=" or (test_deprecated_finders and test_pipfile_finder)"
# https://github.com/PyCQA/isort/issues/2233
donttest+=" or test_black_pyi_file"
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 \
./example_isort_sorting_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" \
--hypothesis-profile="obs" \
${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

52
support-pytest-8.patch Normal file
View File

@@ -0,0 +1,52 @@
From 9c0b6272bfb1fd41298dd0fa9d072367bd79cc1b Mon Sep 17 00:00:00 2001
From: Stanislav Levin <slev@altlinux.org>
Date: Thu, 15 Feb 2024 17:42:59 +0300
Subject: [PATCH] Drop deprecated pytest.warns(None)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
With Pytest 7:
https://docs.pytest.org/en/stable/changelog.html#pytest-7-0-0rc1-2021-12-06
> #8645: pytest.warns(None) is now deprecated because many people used
it to mean “this code does not emit warnings”, but it actually had the
effect of checking that the code emits at least one warning of any
type-like pytest.warns() or pytest.warns(Warning)
With Pytest 8 it's the error.
Changed according to the documentation:
https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests
Fixes: https://github.com/PyCQA/isort/issues/2234
Signed-off-by: Stanislav Levin <slev@altlinux.org>
---
tests/unit/test_ticketed_features.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tests/unit/test_ticketed_features.py b/tests/unit/test_ticketed_features.py
index 32eeb709..bc847ed5 100644
--- a/tests/unit/test_ticketed_features.py
+++ b/tests/unit/test_ticketed_features.py
@@ -3,6 +3,7 @@
"""
from functools import partial
from io import StringIO
+import warnings
import pytest
@@ -615,9 +616,9 @@ def test_isort_should_warn_on_empty_custom_config_issue_1433(tmpdir):
quiet = true
"""
)
- with pytest.warns(None) as warning: # type: ignore
+ with warnings.catch_warnings():
+ warnings.simplefilter("error")
assert Config(settings_file=str(settings_file)).quiet
- assert not warning
def test_float_to_top_should_respect_existing_newlines_between_imports_issue_1502():