# # spec file for package python-pyrsistent # # Copyright (c) 2023 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/ # %define skip_python2 1 %define skip_python36 1 %define skip_python38 1 %define skip_python39 1 %define skip_python311 1 %{?!python_module:%define python_module() python-%{**} python3-%{**}} %global skip_python2 1 %{?sle15_python_module_pythons} Name: python-pyrsistent Version: 0.19.3 Release: 2.2 Summary: Persistent, Functional, Immutable data structures License: MIT Group: Development/Languages/Python URL: http://github.com/tobgu/pyrsistent/ Source: https://files.pythonhosted.org/packages/source/p/pyrsistent/pyrsistent-%{version}.tar.gz BuildRequires: %{python_module devel} BuildRequires: %{python_module hypothesis} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros %python_subpackages %description Pyrsistent is a number of persistent collections (by some referred to as functional data structures). Persistent in the sense that they are immutable. All methods on a data structure that would normally mutate it instead return a new copy of the structure containing the requested updates. The original structure is left untouched. %prep %setup -q -n pyrsistent-%{version} %build export CFLAGS="%{optflags}" %python_build %install %python_install %python_expand %fdupes %{buildroot}%{$python_sitearch} %check %pytest_arch -ra %files %{python_files} %license LICENSE.mit %doc CHANGES.txt README.rst %pycache_only %{python_sitearch}/__pycache__/_pyrsistent* %{python_sitearch}/_pyrsistent* %{python_sitearch}/pvectorc* %{python_sitearch}/pyrsistent %{python_sitearch}/pyrsistent-%{version}*-info %changelog * 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. * Thu Jan 5 2023 Dirk Müller - update to 0.19.3: * Fix #264, add wheels and official support for Python 3.11. * Fix #263, pmap regression in 0.19.1. Element access sometimes unreliable after insert. * Fix #159 (through PR #243). Pmap keys/values/items now behave more like the corresponding Python 3 methods on dicts. Previously they returned a materialized PVector holding the items, now they return views instead. * Fix #244, type for argument to PVector.delete missing. * Fix #249, rename perf test directory to avoid tripping up automatic discovery in more recent setuptools versions * Fix #247, performance bug when setting elements in maps and adding elements to sets * Fix #248, build pure Python wheels. This is used by some installers. * Fix #254, #258, support manylinux_2014_aarch64 wheels. * Fri Feb 4 2022 Dirk Müller - update to 0.18.1: * Add universal wheels for MacOS, thanks @ntamas for this! * Add support for Python 3.10, thanks @hugovk for this! * Fix #236 compilation errors under Python 3.10. * Drop official support for Python 3.6 since it's EOL since 2021-12-23. * Fix #238, failing doc tests on Python 3.11, thanks @musicinmybrain for this! * Sat Oct 16 2021 Dirk Müller - update to 0.18.0: * Fix #209 Update freeze recurse into pyrsistent data structures and thaw to recurse into lists and dicts * Fix #226, stop using deprecated exception.message. * Fix #211, add union operator to persistent maps. * Fix #194, declare build dependencies through pyproject.toml. * Officially drop Python 3.5 support. * Fix #223, release wheels for all major platforms. * Fix #221, KeyError obscured by TypeError if key is a tuple. * Fix LICENSE file name spelling. * Fix #216, add abstractmethod decorator for CheckedType and ABCMeta for _CheckedTypeMeta. * Fix #228, rename example classes in tests to avoid name clashes with pytest. * Mon Feb 15 2021 Ben Greiner - Remove remnant requirements of six and numpy: These are neither used anywhere in the package code, nor in the tests. * Mon Sep 28 2020 Dirk Mueller - update to 0.17.3: * Fix #208, release v0.17.3 with proper meta data requiring Python >= 3.5. * Add "python_requires >= 2.7" to setup.py in preparation for Python 2.7 incompatible updates * Same as 0.17.1 released with more recent version of setuptools to get proper meta data for in place. * Restrict package to Python >= 3.5 to not break unpinned Python 2 dependencies. Thanks @vphilippon * Remove Python 2 support code. This includes dropping some compatibility code and the dependency on six. Thanks @djailla for this. * Fix #200, python 3 exception chaining. This is a minor backwards incompatibility, hence stepping to 0.17.0. Thanks @cool-RR for this! * Fri Jul 17 2020 Dirk Mueller - update to 0.16.0: * No major updates but Python 2 support no longer guaranteed. * Fix #192, 'ignore_extra' for 'pvector_field'. Thanks @ss18 for this! * Fix #191, include LICENCE in distribution. Thanks @johnthagen for this! * Fix #190, minor MyPy errors. Thanks @Qhesz for this! * Fri Feb 28 2020 Dirk Mueller - update to 0.15.7: * Fix #186, type errors with more recent versions of MyPy. Thanks @qhesz for this! * Build and test on ARM during CI. Thanks @ossdev07 for this! * Set absolute imports for python2 compatibility. Thanks @michalvi for this! * Fix #182 moduleinit name clash. * Fix #179 Fixed 'ignore_extra' factory parameter for pvector. Thanks @ss18 for this! * Mon Jul 29 2019 Tomáš Chvátal - Update to 0.15.4: * support new pytest * Fix #174, fix a GC traversal bug in pvector evolver C extension. * Thu Jul 18 2019 Tomáš Chvátal - Use pytest4 for testing as pytest 5.x series do not work; bug was reported upstream * Thu Jul 18 2019 Tomáš Chvátal - Update to 0.15.3: * Fix #172, catch all exceptions during extension build to reduce chance of corner cases that prevents installation. * Fix #171, in PVector equality comparison don's assume that other object has a length, check before calling len. * Fix #168, write warning about failing build of C extension directly to stderr to avoid that pip silences it. * Fix #155, update PMapEvolver type stub to better reflect implementation. * Wed Jun 5 2019 Marketa Calabkova - Update to 0.15.2 * Fix #166, Propagate 'ignore_extra' param in hierarchy. Thanks @ss18 for this! * Fix #167, thaw typing. Thanks @nattofriends for this! * Fix #154, not possible to insert empty pmap as leaf node with transform. * Python 3.4 is no longer officially supported since it is EOL since 2019-03-18. * Fix #157, major improvements to type hints. Thanks @je-l for working on this and @nattofriend for reviewing the PR! * Mon Mar 18 2019 Tomáš Chvátal - Update to 0.14.11: * Fix #152 Don't use __builtin_popcount, this hopefully fixes #147 Error in pvectorc.cp37-win_amd64.pyd file, as well. Thanks @benrg for this! * Fix #151 Fix compatibility for hypothesis 4. Thanks @felixonmars for this! * Fix #148, only require pytest-runner if running tests. Thanks @ccorbacho for this! * Fix #144, Compile pvectormodule.c on windows. Thanks @ganwell for this! * Fix #142, Improve type stubs. Thanks @arxanas for this! * Fix #102, add PEP 561 type annotation stubs for most pyrsistent types. Thanks @nattofriends for this! * Fix #135, Type classes for Python 3 type annotations of pyrsistent types. Thanks @nattofriends for this! * Fix #128, Allow PClass and PRecord to ignore input parameters to constructor that are not part of the spec instead of blowing up with a type error. Thanks @agberk for this! * Fix #137, deprecation warnings in Python 3.7. Thanks @thombashi for this! * Fix #129, building via setuptools and setup.py. Thanks @galuszkak for this! * Sat Aug 11 2018 tchvatal@suse.com - Drop the test conditional - Use %%license macro * Fri Aug 10 2018 jsikes@suse.de - Version jump to 0.14.4 * Fix PClass double-factory-ing in a few situations. * Fix #121, regression in PClass.set() * Fix regression where type names break sequence fields * Allowing 'set' as a valid container for multiple fields. * Fix #131 Clarify that dot-notation can be used for element access on PMaps * Fix #133 Python 3.7 compatibility * Thu Sep 7 2017 toddrme2178@gmail.com - initial version