Sync from SUSE:SLFO:Main python-BTrees revision 67e943efe82d221dcac9762162174e32

This commit is contained in:
Adrian Schröter 2024-05-03 19:42:34 +02:00
commit db9c2728a4
4 changed files with 422 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

BIN
BTrees-5.0.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

308
python-BTrees.changes Normal file
View File

@ -0,0 +1,308 @@
-------------------------------------------------------------------
Thu Feb 16 21:05:56 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 5.0:
* Build Linux binary wheels for Python 3.11.
* Drop support for Python 2.7, 3.5, 3.6.
-------------------------------------------------------------------
Mon Jan 2 14:27:52 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 4.11.3:
* point release to rebuild full set of wheels
* We no longer provide 32bit wheels for the Windows platform, only x86_64.
-------------------------------------------------------------------
Sun Nov 6 17:30:11 UTC 2022 - Hans-Peter Jansen <hpj@urpla.net>
- version update to 4.11.0 (2022-11-03):
* Add support for Python 3.11.
- version update to 4.10.1 (2022-09-12):
* Disable unsafe math optimizations in C code. (#184)
- version update to 4.10.0 (2022-03-09):
* Add support for Python 3.10.
- version update to 4.9.2 (2021-06-09):
* Fix fsBTree.TreeSet and fsBTree.BTree raising SystemError. See
issue 170.
* Fix all the fsBTree objects to provide the correct interfaces
and be instances of the appropriate collection ABCs. This was
done for the other modules in release 4.8.0.
* Fix the multiunion, union, intersection, and difference
functions when used with arbitrary iterables. Previously, the
iterable had to be pre-sorted, meaning only sequences like list
and tuple could reliably be used; this was not documented
though. If the iterable wasnt sorted, the function would
produce garbage output. Now, if the function detects an
arbitrary iterable, it automatically sorts a copy.
- version update to 4.9.1 (2021-05-27):
* Fix setting unknown class attributes on subclasses of BTrees
when using the C extension. This prevented subclasses from
being decorated with @component.adapter(). See issue 168.
- version update to 4.9.0 (2021-05-26):
* Fix the C implementation to match the Python implementation and
allow setting custom node sizes for an entire application
directly by changing BTree.max_leaf_size and
BTree.max_internal_size attributes, without having to create a
new subclass. These attributes can now also be read from the
classes in the C implementation. See issue 166.
* Add various small performance improvements for storing
zope.interface attributes on BTree and TreeSet as well as
deactivating persistent objects from this package.
- disable more tests, that suffer from the same problem as
testPurePython
-------------------------------------------------------------------
Thu Jan 13 07:09:07 UTC 2022 - Matej Cepl <mcepl@suse.com>
- Add missing Provides
-------------------------------------------------------------------
Tue May 18 07:13:46 UTC 2021 - pgajdos@suse.com
- version update to 4.8.0
* Make Python 2 forbid the use of type objects as keys (unless a
custom metaclass is used that implements comparison as required by
BTrees.) On Python 3, types are not orderable so they were already
forbidden, but on Python 2 types can be ordered by memory address,
which makes them unsuitable for use as keys. See `issue
<https://github.com/zopefoundation/BTrees/issues/153>`_.
* Make the ``multiunion``, ``union``, ``intersection``, and
``difference`` functions accept arbitrary Python iterables (that
iterate across the correct types). Previously, the Python
implementation allowed this, but the C implementation only allowed
objects (like ``TreeSet`` or ``Bucket``) defined in the same module
providing the function. See `issue 24
<https://github.com/zopefoundation/BTrees/issues/24>`_.
* Fix persistency bug in the Python version
(`#118 <https://github.com/zopefoundation/BTrees/issues/118>`_).
* Fix ``Tree.__setstate__`` to no longer accept children besides
tree or bucket types to prevent crashes. See `PR 143
<https://github.com/zopefoundation/BTrees/pull/143>`_ for details.
* Make BTrees, TreeSet, Set and Buckets implements the ``__and__``,
``__or__`` and ``__sub__`` special methods as shortcuts for
``BTrees.Interfaces.IMerge.intersection``,
``BTrees.Interfaces.IMerge.union`` and
``BTrees.Interfaces.IMerge.difference``.
* Add support for Python 3.9.
* Build and upload aarch64 wheels.
* Make a value of ``0`` in the ``PURE_PYTHON`` environment variable
require the C extensions (except on PyPy). Previously, and if this
variable is unset, missing or unusable C extensions would be
silently ignored. With this variable set to ``0``, an
``ImportError`` will be raised if the C extensions are unavailable.
See `issue 156
<https://github.com/zopefoundation/BTrees/issues/156>`_.
* Make the BTree objects (``BTree``, ``TreeSet``, ``Set``, ``Bucket``)
of each module actually provide the interfaces defined in
``BTrees.Interfaces``. Previously, they provided no interfaces.
* Make all the BTree and Bucket objects instances of
``collections.abc.MutableMapping`` (that is, ``isinstance(btree,
MutableMapping)`` is now true; no actual inheritance has changed).
As part of this, they now provide the ``popitem()`` method.
* Make all the TreeSet and Set objects instances of
``collections.abc.MutableSet`` (that is, ``isinstance(tree_set,
MutableSet)`` is now true; no actual inheritance has changed).
As part of this, they now provide several more methods, including
``isdisjoint``, ``discard``, and ``pop``, and support in-place
mutation operators such as ``tree_set |= other``, ``tree_set +=
other``, ``tree_set -= other`` and ``tree_set ^= other``. See `issue
121 <https://github.com/zopefoundation/BTrees/issues/121>`_.
* Update the definitions of ``ISized`` and ``IReadSequence`` to simply
be ``zope.interface.common.collections.ISized`` and
``zope.interface.common.sequence.IMinimalSequence`` respectively.
* Remove the ``__nonzero__`` interface method from ``ICollection``. No
objects actually implemented such a method; instead, the boolean value
is typically taken from ``__len__``.
* Adjust the definition of ``ISet`` to produce the same resolution
order under the C3 and legacy orderings. This means that the legacy
order has changed slightly, but that this package emits no warnings
when ``ZOPE_INTERFACE_LOG_CHANGED_IRO=1``. Note that the legacy
order was not being used for these objects because the C3 ordering
was still consistent; it could only be obtained using
``ZOPE_INTERFACE_USE_LEGACY_IRO=1``. See `PR 159
<https://github.com/zopefoundation/BTrees/pull/159>`_ for all the
interface updates.
* Fix the ``get``, ``setdefault`` and ``pop`` methods, as well as the
``in`` operator, to not suppress ``POSKeyError`` if the object or
subobjects are corrupted. Previously, such errors were logged by
ZODB, but not propagated. See `issue 161
<https://github.com/zopefoundation/BTrees/issues/161>`_.
-------------------------------------------------------------------
Tue Apr 14 09:19:56 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
- Do not bother with documentation
- Update to 4.7.2:
* Fix more cases of C and Python inconsistency.
-------------------------------------------------------------------
Wed Mar 25 16:00:38 UTC 2020 - Marketa Calabkova <mcalabkova@suse.com>
- update to 4.7.1
* Ensure the interface resolution order of all objects is consistent.
See `issue 137 <https://github.com/zopefoundation/BTrees/issues/137>`_.
* Add unsigned variants of the trees. These use the initial "U" for
32-bit data and "Q" for 64-bit data (for "quad", which is similar to
what the C ``printf`` function uses and the Python struct module
uses).
* Fix the value for ``BTrees.OIBTree.using64bits`` when using the pure Python
implementation (PyPy and when ``PURE_PYTHON`` is in the environment).
* Make the errors that are raised when values are out of range more
consistent between Python 2 and Python 3 and between 32-bit and
64-bit variants.
* Make the Bucket types consistent with the BTree types as updated in
versions 4.3.2: Querying for keys with default comparisons or that
are not integers no longer raises ``TypeError``.
-------------------------------------------------------------------
Mon Jan 13 14:30:27 UTC 2020 - Marketa Calabkova <mcalabkova@suse.com>
- update to 4.6.1
* Add support for Python 3.8.
-------------------------------------------------------------------
Mon Oct 14 11:43:03 UTC 2019 - Matej Cepl <mcepl@suse.com>
- Replace %fdupes -s with plain %fdupes; hardlinks are better.
-------------------------------------------------------------------
Mon Aug 5 11:36:26 UTC 2019 - pgajdos@suse.com
- version update to 4.6.0
* Drop support for Python 3.4.
* Fix tests against persistent 4.4.
* Stop accidentally installing the 'terryfy' package in macOS wheels.
See `issue 98
<https://github.com/zopefoundation/BTrees/issues/98>`_.
* Fix segmentation fault in ``bucket_repr()``. See
`issue 106 <https://github.com/zopefoundation/BTrees/issue/106>`_.
-------------------------------------------------------------------
Sun Feb 10 11:14:42 UTC 2019 - John Vandenberg <jayvdb@gmail.com>
- Update to v4.5.1
+ Use pyproject.toml to specify build dependencies. This requires pip
18 or later to build from source.
- 4.5.0
+ Add support for Python 3.6 and 3.7, and drop support for Python 3.3.
+ Raise an ``ImportError`` consistently on Python 3 if the C extension for
BTrees is used but the ``persistent`` C extension is not available.
Previously this could result in an odd ``AttributeError``.
+ Fix the possibility of a rare crash in the C extension when
deallocating items.
+ Respect the ``PURE_PYTHON`` environment variable at runtime even if
the C extensions are available.
+ Always attempt to build the C extensions, but make their success
optional.
+ Fix a ``DeprecationWarning`` that could come from I and L objects in
Python 2 in pure-Python mode.
- Use %license
-------------------------------------------------------------------
Mon Jul 10 11:19:10 UTC 2017 - jengelh@inai.de
- Fix duplicate summaries
-------------------------------------------------------------------
Sat Jun 24 12:19:41 UTC 2017 - aloisio@gmx.com
- Update to version 4.4.1
* Fixed a packaging bug that caused extra files to be included
(some of which caused problems in some platforms).
4.4.0:
* Allow None as a special key (sorted smaller than all others).
* This is a bit of a return to BTrees 3 behavior in that Nones
are allowed as keys again. Other objects with default ordering
are still not allowed as keys.
4.3.2:
* Make the CPython implementation consistent with the
pure-Python implementation and only check object keys for
default comparison when setting keys. In Python 2 this makes it
possible to remove keys that were added using a less restrictive
version of BTrees. (In Python 3 keys that are unorderable still
cannot be removed.) Likewise, all versions can unpickle trees
that already had such keys. See:
https://github.com/zopefoundation/BTrees/issues/53 and
https://github.com/zopefoundation/BTrees/issues/51
* Make the Python implementation consistent with the CPython
implementation and check object key identity before checking
equality and performing comparisons. This can allow fixing trees
that have keys that now have broken comparison functions. See
https://github.com/zopefoundation/BTrees/issues/50
* Make the CPython implementation consistent with the
pure-Python implementation and no longer raise TypeError for an
object key (in object-keyed trees) with default comparison on
__getitem__, get or in operations. Instead, the results will be
a KeyError, the default value, and False, respectively.
Previously, CPython raised a TypeError in those cases, while the
Python implementation behaved as specified.
* Likewise, non-integer keys in integer-keyed trees will raise
KeyError, return the default and return False, respectively, in
both implementations. Previously, pure-Python raised a KeyError,
returned the default, and raised a TypeError, while CPython
raised TypeError in all three cases.
4.3.1:
* Packaging: fix password used to automate wheel creation on
Travis.
4.3.0:
* Fix unexpected OverflowError when passing 64bit values to
long keys / values on Win64. See:
https://github.com/zopefoundation/BTrees/issues/32
* When testing PURE_PYTHON environments under tox, avoid
poisoning the users global wheel cache.
* Ensure that the pure-Python implementation, used on PyPy and
when a C compiler isnt available for CPython, pickles
identically to the C version. Unpickling will choose the best
available implementation. This change prevents interoperability
problems and database corruption if both implementations are in
use. While it is no longer possible to pickle a Python
implementation and have it unpickle to the Python implementation
if the C implementation is available, existing Python pickles
will still unpickle to the Python implementation (until pickled
again). See: https://github.com/zopefoundation/BTrees/issues/19
* Avoid creating invalid objects when unpickling empty BTrees
in a pure-Python environment.
* Drop support for Python 2.6 and 3.2.
4.2.0:
* Add support for Python 3.5.
4.1.4:
* Ensure that pure-Python Bucket and Set objects have a human
readable __repr__ like the C versions.
4.1.3:
* Fix _p_changed when removing items from small pure-Python
BTrees/TreeSets and when adding items to small pure-Python Sets.
See: https://github.com/zopefoundation/BTrees/issues/13
- Converted to single-spec
-------------------------------------------------------------------
Mon Apr 27 20:13:30 UTC 2015 - benoit.monin@gmx.fr
- update to version 4.1.2:
* Suppress testing 64-bit values in OLBTrees on 32 bit machines.
* Fix _p_changed for small pure-Python BTrees.
- make the tests less verbose to avoid spamming the build log
-------------------------------------------------------------------
Fri Feb 6 16:54:20 UTC 2015 - hpj@urpla.net
- version 4.1.1
- 4.1.1 (2014-12-27)
Accomodate long values in pure-Python OLBTrees.
- 4.1.0 (2014-12-26)
Add support for PyPy and PyPy3.
Add support for Python 3.4.
BTree subclasses can define max_leaf_size or max_internal_size to control
maximum sizes for Bucket/Set and BTree/TreeSet nodes. Detect integer overflow
on 32-bit machines correctly under Python 3. Update pure-Python and C trees /
sets to accept explicit None to indicate max / min value for minKey, maxKey.
PR #3) Update pure-Python trees / sets to accept explicit None to indicate
pen ranges for keys, values, items. (PR #3)
-------------------------------------------------------------------
Fri Aug 2 19:21:24 UTC 2013 - hpj@urpla.net
- version 4.0.8: initial build

88
python-BTrees.spec Normal file
View File

@ -0,0 +1,88 @@
#
# spec file for package python-BTrees
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2015-2022 LISA GmbH, Bingen, Germany.
#
# 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/
#
Name: python-BTrees
Version: 5.0
Release: 0
Summary: Persistent B-tree object containers for Python
License: ZPL-2.1
URL: https://github.com/zopefoundation/BTrees
Source: https://files.pythonhosted.org/packages/source/B/BTrees/BTrees-%{version}.tar.gz
BuildRequires: %{python_module devel >= 3.7}
BuildRequires: %{python_module persistent-devel >= 4.1.0}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module transaction}
BuildRequires: %{python_module zope.interface}
BuildRequires: %{python_module zope.testrunner}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-persistent >= 4.1.0
Requires: python-zope.interface
Provides: %{name}-doc = %{version}-%{release}
Obsoletes: %{name}-doc
%python_subpackages
%description
This package contains a generic BTrees implementation for Python. It is
mainly used by the ZODB, though.
Note that the data manager API, BTrees.interfaces.IDataManager, is
syntactically simple, but semantically complex. The semantics were not easy to
express in the interface. This could probably use more work. The semantics are
presented in detail through examples of a sample data manager in
BTrees.tests.test_SampleDataManager.
%package devel
Summary: Development files for the python-BTrees module
Requires: %{name} = %{version}
%description devel
This package contains the files needed for binding the %{name} C module.
%prep
%setup -q -n BTrees-%{version}
rm -rf BTrees.egg-info
%build
%python_build
%install
%python_install
%{python_expand rm %{buildroot}%{$python_sitearch}/BTrees/*.c
%fdupes %{buildroot}%{$python_sitearch}
}
%check
# the failing tests would require this step which setup.py test did:
#%%{python_expand cp build/lib.linux-*/BTrees/*.so src/BTrees/}
# it can be overcome with --import-mode=append
%pytest_arch -k 'not testPurePython and not testSubclassesCanHaveAttributes and not testCannotSetArbitraryAttributeOnBase'
%files %{python_files}
%doc CHANGES.rst README.rst PKG-INFO
%license COPYRIGHT.txt LICENSE.txt
%exclude %{python_sitearch}/BTrees/*.h
%{python_sitearch}/BTrees
%{python_sitearch}/BTrees-%{version}*-info
%files %{python_files devel}
%{python_sitearch}/BTrees/*.h
%changelog