# # spec file for package python-kiwisolver # # 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/ # %{?sle15_python_module_pythons} Name: python-kiwisolver Version: 1.4.8 Release: 1.3 Summary: An implementation of the Cassowary constraint solver License: BSD-3-Clause Group: Development/Languages/Python URL: https://github.com/nucleic/kiwi Source: https://files.pythonhosted.org/packages/source/k/kiwisolver/kiwisolver-%{version}.tar.gz BuildRequires: %{python_module cppy >= 1.2.0} BuildRequires: %{python_module devel >= 3.7} BuildRequires: %{python_module pip} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools >= 61.2} BuildRequires: %{python_module setuptools_scm >= 3.4.3} BuildRequires: %{python_module tomli} BuildRequires: %{python_module wheel} BuildRequires: dos2unix BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: python-rpm-macros %python_subpackages %description Kiwi is a C++ implementation of the Cassowary constraint solving algorithm. Kiwi is an implementation of the algorithm based on the seminal Cassowary paper, but it is not a refactoring of the original C++ solver. Kiwi ranges from 10x to 500x faster processing than the original Cassowary solver with the same input set, with typical use cases gaining a 40x improvement. Memory savings are consistently >5x. In addition to the C++ solver, Kiwi ships with hand-rolled Python bindings. %prep %setup -q -n kiwisolver-%{version} # Fix wrong-file-end-of-line-encoding dos2unix LICENSE README.rst releasenotes.rst %build export CFLAGS="%{optflags}" %pyproject_wheel %install %pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitearch} %check %pytest_arch %files %{python_files} %license LICENSE %doc README.rst releasenotes.rst %{python_sitearch}/kiwisolver %{python_sitearch}/kiwisolver-%{version}*-info %changelog * Tue Jan 14 2025 John Paul Adrian Glaubitz - Update to 1.4.8 * Drop support for Python 3.8 and 3.9 * Do not link to MSVCP on Windows and drop windows 32 bits support * Add support for free-threaded builds on Python 3.13 * Wed Oct 23 2024 Dirk Müller - update to 1.4.7: * no library changes only fixes to the build infrastructure * drop support for Python 3.7 * add support for Python 3.13 * Mon Nov 27 2023 Dirk Müller - update to 1.4.5: * implement exceptions in Python * add missing signature of Constraint.violated for Python wrapper * add support for Python 3.12 * Fri Apr 21 2023 Dirk Müller - add sle15_python_module_pythons (jsc#PED-68) * Thu Apr 13 2023 Matej Cepl - Make calling of %%{sle15modernpython} optional. * Sun Jul 24 2022 Dirk Müller - update to 1.4.4: - fix timing in shared data release procedure PR #149 - revert use of nullpointer introduced in #142 Its use is not necessary anymore in 3.11.0-beta.4 and used to cause issues on some platforms (see #144 ) PR #145 * Thu Jul 14 2022 Ben Greiner - Update to 1.4.3 * add support for Python 3.11 PR #142 * do not install tests PR #143 * fix packaging for latest setuptools PR #140 - Release 1.4.2 * fix an issue with setuptools configuration PR #134 * Mon Mar 28 2022 Ben Greiner - Update to 1.4.1 * add missing include PR #129 * re-organize the Python binding sources to properly ship type hints PR #131 * make installation PEP517 compliant PR #125 * add type hints PR #125 * add Constraint::violated() method PR #128 * make the the c++ part of the code c++20 compliant PR #120 * test with c++11 and c++20 PR #120 - Switch to PyPI sources * Wed Jan 5 2022 Dirk Müller - update to 1.3.2: - Add support for Python 3.10, drop official support Python 3.6 - Remove direct accesses to ob_type in C-API use Py_TYPE instead * Sun Dec 20 2020 Dirk Müller - update to 1.3.1: - allow to avoid linking against VC2014_1 on windows PR #97 - do not mark move constructor / assignment operator of expression as noexcept PR #97 This is to circumvent a suspected bug in the GCC compiler in the manylinux1 image. - add c++ benchmarks and run them on CIs PR #91 - modernize the c++ code by using more c++11 features PR #90 - introduce move semantic in some c++ constructors to improve performances PR #89 - add support for Python 3.9 PR #88 * Thu Apr 16 2020 pgajdos@suse.com - version update to 1.2.0 * setup.py: proper python version pinning and cut 1.2.0 release - python3 only, e. g. requires cppy, which is python3 only * Wed Jul 24 2019 Tomáš Chvátal - Update to 1.1.0: * prevent attempting a dual optimize on a dummy row PR #56 closes #15 * add dump and dumps methods to inspect the internal state of the solver PR #56 * test on Python 3.7 PR #51 * improvemnts to setup.py and tests PR #46 #50 * Wed Mar 28 2018 jengelh@inai.de - Quantify speeds in description. * Fri Mar 23 2018 tchvatal@suse.com - Cleanup with spec-cleaner - Switch to github archive to have tests * Tue Feb 13 2018 toddrme2178@gmail.com - Update to 1.0.1 * allow unicode strings for variable name in Python 2 * allow unicode strings as strength specifiers in Python 2 - Update to 1.0.0 * Allow anonymous variables (solver PR #32, wrappers PR #22) * Solver: Define binary operators as free functions (PR #23) * Wrappers: support for Python 3 (PR #13) * Wrappers: drop distribute dependency in favor of setuptools (PR #22) * Wrappers: add a comprehensive test suite - Implement single-spec version - Complete spec file rewrite. * Fri Sep 4 2015 toddrme2178@gmail.com - Initial version