[pybsddb] berkeleydb 18.1.9 released

Jesus Cea jcea at jcea.es
Wed Jun 19 05:32:04 CEST 2024


Homepage:
https://www.jcea.es/programacion/pybsddb.htm

Changelog:
https://www.jcea.es/programacion/pybsddb.htm#berkeleydb-18.1.9

Docs:
https://docs.jcea.es/berkeleydb/latest/

PyPI:
https://pypi.org/project/berkeleydb/

Changelog:

18.1.9 - 2024-06-19
-------------------

   - ``pkg_resources`` is deprecated, so migrate to
     ``packaging``. This is already provided by modern
     ``setuptools``. This change only affects you if you run the
     test suite.

   - If compiled under Python 3.10 or higher, we use the Python
     Stable ABI, as defined in PEP 384 and related PEPs. That is,
     you can use the same compiled module with any Python release
     if Python version >= 3.10.

     In order to achieve this, we have made these changes:

     - Some fast Python API (not error checking) have been replaced
       by somewhat slower functions (functions that do error
       checking), because the former are not available in the
       Stable ABI: ``PyBytes_GET_SIZE()``, ``PyBytes_AS_STRING()``,
       ``PyTuple_SET_ITEM()``.

     - We replaced ``PyErr_Warn()`` by ``PyErr_WarnEx()`` because
       it is not available in the Stable ABI.

     - When an exception is raised because an incompatible type,
       we need to write complicated code because
       ``Py_TYPE(keyobj)->tp_name`` is not available in the Stable
       ABI. Code generated for Python < 3.11 is "ugly", we will
       clean it up when the minimum supported Python version is
       3.11.

     - ``TYPE->tp_alloc`` is not available under the Stable ABI. We
       replace it with ``PyType_GenericNew()``.

     - Internal types that should NOT be instanciated by the user
       has ``type->tp_new = NULL``. This can not be done under the
       Stable ABI, so we use ``Py_TPFLAGS_DISALLOW_INSTANTIATION``
       flag. This is the reason we only create Stable ABI modules
       under Python >= 3.10, because that flag is defined in that
       Python release.

     - The new function ``berkeleydb.py_limited_api()`` returns an
       integer describing the minimum supported Stable ABI or
       ``None``. If ``None``, the module is not compiled with
       Stable ABI and can not be used with a different Python
       version. When not ``None``, the value of
       ``berkeleydb.py_limited_api()`` can be easily interpreted
       using something like ``hex(berkeleydb.py_limited_api())``.

   - Python 3.13 added to the full test matrix.

   - Experimental Python 3.13 support. Tested under 3.13.0b2.

   - This code can be compiled under MS Windows, but I am unable to
     provide support for it and it is far from trivial. Because of
     this and some complains about it, I change the "Classifiers"
     for this project from

       'Operating System :: OS Independent'

     to

       'Operating System :: Unix'

     I would restore MS Windows support if there is some kind of
     community support for it. I can not do it by myself alone.
     Sorry about that.

-- 
Jesús Cea Avión                         _/_/      _/_/_/        _/_/_/
jcea at jcea.es - https://www.jcea.es/    _/_/    _/_/  _/_/    _/_/  _/_/
Twitter: @jcea                        _/_/    _/_/          _/_/_/_/_/
jabber / xmpp:jcea at jabber.org  _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz


More information about the pybsddb mailing list