Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-plyvel for openSUSE:Factory checked in at 2022-11-10 16:40:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-plyvel (Old) and /work/SRC/openSUSE:Factory/.python-plyvel.new.1597 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-plyvel" Thu Nov 10 16:40:31 2022 rev:12 rq:1035046 version:1.5.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-plyvel/python-plyvel.changes 2022-01-16 23:19:16.350377702 +0100 +++ /work/SRC/openSUSE:Factory/.python-plyvel.new.1597/python-plyvel.changes 2022-11-10 16:40:32.395292746 +0100 @@ -1,0 +2,11 @@ +Wed Nov 9 16:29:57 UTC 2022 - Yogalakshmi Arunachalam <yarunacha...@suse.com> + +- Update to 1.5.0 + * use manylinux2014 image for building wheels + * Fix typo in docs (#145) + * update leveldb links to github + * clarify bloom_filter_bits in docs + * skip py36 wheels + * drop py36 from tox config + +------------------------------------------------------------------- Old: ---- plyvel-1.4.0.tar.gz New: ---- plyvel-1.5.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-plyvel.spec ++++++ --- /var/tmp/diff_new_pack.vzCBbD/_old 2022-11-10 16:40:32.859295346 +0100 +++ /var/tmp/diff_new_pack.vzCBbD/_new 2022-11-10 16:40:32.867295391 +0100 @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %global skip_python2 1 Name: python-plyvel -Version: 1.4.0 +Version: 1.5.0 Release: 0 Summary: Python interface to LevelDB License: BSD-3-Clause ++++++ plyvel-1.4.0.tar.gz -> plyvel-1.5.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plyvel-1.4.0/Makefile new/plyvel-1.5.0/Makefile --- old/plyvel-1.4.0/Makefile 2021-12-29 14:21:10.000000000 +0100 +++ new/plyvel-1.5.0/Makefile 2022-04-22 21:45:22.000000000 +0200 @@ -32,6 +32,7 @@ release: docker-build-env CIBW_BUILD='cp3*-manylinux_x86_64' \ + CIBW_SKIP='cp36-manylinux_x86_64' \ CIBW_MANYLINUX_X86_64_IMAGE=plyvel-build \ CIBW_BEFORE_BUILD=scripts/cibuildwheel-before-build.sh \ CIBW_PLATFORM=linux \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plyvel-1.4.0/NEWS.rst new/plyvel-1.5.0/NEWS.rst --- old/plyvel-1.4.0/NEWS.rst 2021-12-29 14:24:31.000000000 +0100 +++ new/plyvel-1.5.0/NEWS.rst 2022-10-26 18:08:46.000000000 +0200 @@ -2,6 +2,16 @@ Version history =============== +Plyvel 1.5.0 +============ + +Release date: 2022-10-26 + +* Rebuild Linux wheels, with ``manylinux_2_17`` and ``manylinux2014`` + compatibility (``x86_64`` only). Also produce Python 3.11 wheels. + Still using Snappy 1.1.9 and LevelDB 1.22. + (`issue #148 <https://github.com/wbolster/plyvel/issues/148>`_) + Plyvel 1.4.0 ============ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plyvel-1.4.0/PKG-INFO new/plyvel-1.5.0/PKG-INFO --- old/plyvel-1.4.0/PKG-INFO 2021-12-29 14:26:37.297494400 +0100 +++ new/plyvel-1.5.0/PKG-INFO 2022-10-26 18:09:10.015384700 +0200 @@ -1,12 +1,11 @@ Metadata-Version: 2.1 Name: plyvel -Version: 1.4.0 +Version: 1.5.0 Summary: Plyvel, a fast and feature-rich Python interface to LevelDB Home-page: https://github.com/wbolster/plyvel Author: Wouter Bolsterlee Author-email: wou...@bolsterl.ee License: BSD License -Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Intended Audience :: Information Technology @@ -42,9 +41,7 @@ .. _Project page: https://github.com/wbolster/plyvel .. _Documentation: https://plyvel.readthedocs.io/ .. _PyPI page: http://pypi.python.org/pypi/plyvel/ -.. _LevelDB: http://code.google.com/p/leveldb/ +.. _LevelDB: https://github.com/google/leveldb Note that using a released version is recommended over a checkout from version control. See the installation docs for more information. - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plyvel-1.4.0/README.rst new/plyvel-1.5.0/README.rst --- old/plyvel-1.4.0/README.rst 2021-10-20 22:24:59.000000000 +0200 +++ new/plyvel-1.5.0/README.rst 2022-04-22 21:50:25.000000000 +0200 @@ -17,7 +17,7 @@ .. _Project page: https://github.com/wbolster/plyvel .. _Documentation: https://plyvel.readthedocs.io/ .. _PyPI page: http://pypi.python.org/pypi/plyvel/ -.. _LevelDB: http://code.google.com/p/leveldb/ +.. _LevelDB: https://github.com/google/leveldb Note that using a released version is recommended over a checkout from version control. See the installation docs for more information. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plyvel-1.4.0/doc/api.rst new/plyvel-1.5.0/doc/api.rst --- old/plyvel-1.4.0/doc/api.rst 2021-10-20 22:24:59.000000000 +0200 +++ new/plyvel-1.5.0/doc/api.rst 2022-10-26 17:56:05.000000000 +0200 @@ -56,7 +56,7 @@ encoding of keys :param bool max_file_size: maximum file size (in bytes) :param bool compression: whether to use Snappy compression (enabled by default)) - :param int bloom_filter_bits: the number of bits to use for a bloom + :param int bloom_filter_bits: the number of bits to use per key for a bloom filter; the default of 0 means that no bloom filter will be used :param callable comparator: a custom comparator callable that takes two @@ -168,7 +168,7 @@ * `include_start` and `include_stop` are only used if `start` and `stop` are specified. - Note: due to the whay the `prefix` support is implemented, this feature + Note: due to the way the `prefix` support is implemented, this feature only works reliably when the default DB comparator is used. See the :py:class:`Iterator` API for more information about iterators. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plyvel-1.4.0/doc/index.rst new/plyvel-1.5.0/doc/index.rst --- old/plyvel-1.4.0/doc/index.rst 2021-10-20 22:24:59.000000000 +0200 +++ new/plyvel-1.5.0/doc/index.rst 2022-04-22 21:50:25.000000000 +0200 @@ -4,7 +4,7 @@ **Plyvel** is a fast and feature-rich Python interface to LevelDB_. -.. _LevelDB: http://code.google.com/p/leveldb/ +.. _LevelDB: https://github.com/google/leveldb Plyvel's key features are: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plyvel-1.4.0/doc/user.rst new/plyvel-1.5.0/doc/user.rst --- old/plyvel-1.4.0/doc/user.rst 2021-10-20 22:24:59.000000000 +0200 +++ new/plyvel-1.5.0/doc/user.rst 2022-04-22 21:50:25.000000000 +0200 @@ -15,7 +15,7 @@ Note: this document assumes basic familiarity with LevelDB; visit the `LevelDB homepage`_ for more information about its features and design. -.. _`LevelDB homepage`: http://code.google.com/p/leveldb/ +.. _`LevelDB homepage`: https://github.com/google/leveldb Getting started diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plyvel-1.4.0/plyvel/_plyvel.cpp new/plyvel-1.5.0/plyvel/_plyvel.cpp --- old/plyvel-1.4.0/plyvel/_plyvel.cpp 2021-12-29 14:26:36.000000000 +0100 +++ new/plyvel-1.5.0/plyvel/_plyvel.cpp 2022-10-26 18:09:09.000000000 +0200 @@ -1,4 +1,4 @@ -/* Generated by Cython 0.29.26 */ +/* Generated by Cython 0.29.32 */ #ifndef PY_SSIZE_T_CLEAN #define PY_SSIZE_T_CLEAN @@ -9,8 +9,8 @@ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.6+ or Python 3.3+. #else -#define CYTHON_ABI "0_29_26" -#define CYTHON_HEX_VERSION 0x001D1AF0 +#define CYTHON_ABI "0_29_32" +#define CYTHON_HEX_VERSION 0x001D20F0 #define CYTHON_FUTURE_DIVISION 1 #include <stddef.h> #ifndef offsetof @@ -49,6 +49,7 @@ #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_PYTYPE_LOOKUP @@ -85,10 +86,14 @@ #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_HEX >= 0x07030900) + #endif #elif defined(PYSTON_VERSION) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 1 #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif @@ -126,10 +131,59 @@ #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 + #endif +#elif defined(PY_NOGIL) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 1 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #ifndef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 1 + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 1 + #endif + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 1 + #define CYTHON_COMPILING_IN_NOGIL 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif @@ -172,11 +226,14 @@ #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif - #ifndef CYTHON_FAST_THREAD_STATE + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #elif !defined(CYTHON_FAST_THREAD_STATE) #define CYTHON_FAST_THREAD_STATE 1 #endif #ifndef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030B00A1) + #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030A0000) #endif #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) @@ -187,9 +244,15 @@ #ifndef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) #endif - #ifndef CYTHON_USE_EXC_INFO_STACK + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 + #elif !defined(CYTHON_USE_EXC_INFO_STACK) #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) #endif + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 1 + #endif #endif #if !defined(CYTHON_FAST_PYCCALL) #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) @@ -655,8 +718,10 @@ } __Pyx_PyAsyncMethodsStruct; #endif -#if defined(WIN32) || defined(MS_WINDOWS) - #define _USE_MATH_DEFINES +#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS) + #if !defined(_USE_MATH_DEFINES) + #define _USE_MATH_DEFINES + #endif #endif #include <math.h> #ifdef NAN @@ -1333,6 +1398,12 @@ #if CYTHON_FAST_PYCALL static size_t __pyx_pyframe_localsplus_offset = 0; #include "frameobject.h" +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif #define __Pxy_PyFrame_Initialize_Offsets()\ ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) @@ -1697,6 +1768,12 @@ PyObject *module, PyObject *globals, PyObject* code); +/* PySequenceContains.proto */ +static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) { + int result = PySequence_Contains(seq, item); + return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); +} + /* Import.proto */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); @@ -1975,7 +2052,7 @@ static const char __pyx_k_db[] = "db"; static const char __pyx_k_id[] = "id"; static const char __pyx_k_st[] = "st"; -static const char __pyx_k__27[] = "."; +static const char __pyx_k__28[] = "."; static const char __pyx_k_doc[] = "__doc__"; static const char __pyx_k_get[] = "get"; static const char __pyx_k_hex[] = "hex"; @@ -2113,7 +2190,7 @@ static const char __pyx_k_self__iter_self_comparator_self[] = "self._iter,self.comparator,self.start_slice,self.stop_slice cannot be converted to a Python object for pickling"; static const char __pyx_k_Cannot_convert_unicode_name_to_a[] = "Cannot convert unicode 'name' to a file system name: %s"; static const char __pyx_k_Cannot_operate_on_closed_LevelDB[] = "Cannot operate on closed LevelDB database"; -static const char __pyx_k_Incompatible_checksums_s_vs_0x11[] = "Incompatible checksums (%s vs 0x11ea7f1 = (db, prefix))"; +static const char __pyx_k_Incompatible_checksums_0x_x_vs_0[] = "Incompatible checksums (0x%x vs (0x11ea7f1, 0xe9c0b3a, 0x8ba9a5d) = (db, prefix))"; static const char __pyx_k_custom_comparator_object_must_be[] = "custom comparator object must be callable"; static const char __pyx_k_self__iter_cannot_be_converted_t[] = "self._iter cannot be converted to a Python object for pickling"; static const char __pyx_k_self__snapshot_cannot_be_convert[] = "self._snapshot cannot be converted to a Python object for pickling"; @@ -2128,7 +2205,7 @@ static PyObject *__pyx_kp_u_Database_or_snapshot_is_closed; static PyObject *__pyx_n_s_Error; static PyObject *__pyx_n_s_IOError; -static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x11; +static PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0; static PyObject *__pyx_n_s_Iterator; static PyObject *__pyx_n_s_IteratorInvalidError; static PyObject *__pyx_n_s_Lock; @@ -2145,7 +2222,7 @@ static PyObject *__pyx_n_s_UnicodeEncodeError; static PyObject *__pyx_n_s_ValueError; static PyObject *__pyx_n_s_WriteBatch; -static PyObject *__pyx_kp_u__27; +static PyObject *__pyx_kp_u__28; static PyObject *__pyx_kp_u__7; static PyObject *__pyx_kp_u__8; static PyObject *__pyx_n_s_approximate_sizes; @@ -2367,6 +2444,8 @@ static PyObject *__pyx_tp_new_6plyvel_7_plyvel___pyx_scope_struct____init__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop = {0, &__pyx_n_s_pop, 0, 0, 0}; static PyObject *__pyx_int_18786289; +static PyObject *__pyx_int_146446941; +static PyObject *__pyx_int_245107514; static PyObject *__pyx_tuple_; static PyObject *__pyx_tuple__2; static PyObject *__pyx_tuple__3; @@ -2391,12 +2470,13 @@ static PyObject *__pyx_tuple__24; static PyObject *__pyx_tuple__25; static PyObject *__pyx_tuple__26; -static PyObject *__pyx_tuple__28; -static PyObject *__pyx_tuple__30; -static PyObject *__pyx_tuple__32; -static PyObject *__pyx_codeobj__29; -static PyObject *__pyx_codeobj__31; -static PyObject *__pyx_codeobj__33; +static PyObject *__pyx_tuple__27; +static PyObject *__pyx_tuple__29; +static PyObject *__pyx_tuple__31; +static PyObject *__pyx_tuple__33; +static PyObject *__pyx_codeobj__30; +static PyObject *__pyx_codeobj__32; +static PyObject *__pyx_codeobj__34; /* Late includes */ /* "plyvel/_plyvel.pyx":83 @@ -13837,7 +13917,7 @@ /* Python wrapper */ static PyObject *__pyx_pw_6plyvel_7_plyvel_8Iterator_5__next__(PyObject *__pyx_v_self); /*proto*/ static char __pyx_doc_6plyvel_7_plyvel_8Iterator_4__next__[] = "Return the next iterator entry.\n\n Note: Cython will also create a .next() method that does the\n same as this method.\n "; -#if CYTHON_COMPILING_IN_CPYTHON +#if CYTHON_UPDATE_DESCRIPTOR_DOC struct wrapperbase __pyx_wrapperbase_6plyvel_7_plyvel_8Iterator_4__next__; #endif static PyObject *__pyx_pw_6plyvel_7_plyvel_8Iterator_5__next__(PyObject *__pyx_v_self) { @@ -19316,12 +19396,12 @@ PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -19330,114 +19410,118 @@ /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result - * if __pyx_checksum != 0x11ea7f1: # <<<<<<<<<<<<<< + * if __pyx_checksum not in (0x11ea7f1, 0xe9c0b3a, 0x8ba9a5d): # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x11ea7f1 = (db, prefix))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x11ea7f1, 0xe9c0b3a, 0x8ba9a5d) = (db, prefix))" % __pyx_checksum) */ - __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x11ea7f1) != 0); - if (__pyx_t_1) { + __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__27, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { /* "(tree fragment)":5 * cdef object __pyx_result - * if __pyx_checksum != 0x11ea7f1: + * if __pyx_checksum not in (0x11ea7f1, 0xe9c0b3a, 0x8ba9a5d): * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x11ea7f1 = (db, prefix))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x11ea7f1, 0xe9c0b3a, 0x8ba9a5d) = (db, prefix))" % __pyx_checksum) * __pyx_result = PrefixedDB.__new__(__pyx_type) */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_PickleError); __Pyx_GIVEREF(__pyx_n_s_PickleError); - PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError); - __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_2); - __pyx_v___pyx_PickleError = __pyx_t_2; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError); + __pyx_t_4 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_1); + __pyx_v___pyx_PickleError = __pyx_t_1; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "(tree fragment)":6 - * if __pyx_checksum != 0x11ea7f1: + * if __pyx_checksum not in (0x11ea7f1, 0xe9c0b3a, 0x8ba9a5d): * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x11ea7f1 = (db, prefix))" % __pyx_checksum) # <<<<<<<<<<<<<< + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x11ea7f1, 0xe9c0b3a, 0x8ba9a5d) = (db, prefix))" % __pyx_checksum) # <<<<<<<<<<<<<< * __pyx_result = PrefixedDB.__new__(__pyx_type) * if __pyx_state is not None: */ - __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x11, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_v___pyx_PickleError); - __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_5); + __pyx_t_1 = __pyx_v___pyx_PickleError; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); + __Pyx_DECREF_SET(__pyx_t_1, function); } } - __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 6, __pyx_L1_error) /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result - * if __pyx_checksum != 0x11ea7f1: # <<<<<<<<<<<<<< + * if __pyx_checksum not in (0x11ea7f1, 0xe9c0b3a, 0x8ba9a5d): # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x11ea7f1 = (db, prefix))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x11ea7f1, 0xe9c0b3a, 0x8ba9a5d) = (db, prefix))" % __pyx_checksum) */ } /* "(tree fragment)":7 * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x11ea7f1 = (db, prefix))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x11ea7f1, 0xe9c0b3a, 0x8ba9a5d) = (db, prefix))" % __pyx_checksum) * __pyx_result = PrefixedDB.__new__(__pyx_type) # <<<<<<<<<<<<<< * if __pyx_state is not None: * __pyx_unpickle_PrefixedDB__set_state(<PrefixedDB> __pyx_result, __pyx_state) */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_6plyvel_7_plyvel_PrefixedDB), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_4); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_6plyvel_7_plyvel_PrefixedDB), __pyx_n_s_new); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); + __Pyx_DECREF_SET(__pyx_t_1, function); } } - __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v___pyx_result = __pyx_t_3; - __pyx_t_3 = 0; + __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v___pyx_type); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v___pyx_result = __pyx_t_4; + __pyx_t_4 = 0; /* "(tree fragment)":8 - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x11ea7f1 = (db, prefix))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x11ea7f1, 0xe9c0b3a, 0x8ba9a5d) = (db, prefix))" % __pyx_checksum) * __pyx_result = PrefixedDB.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_PrefixedDB__set_state(<PrefixedDB> __pyx_result, __pyx_state) * return __pyx_result */ - __pyx_t_1 = (__pyx_v___pyx_state != Py_None); - __pyx_t_6 = (__pyx_t_1 != 0); - if (__pyx_t_6) { + __pyx_t_3 = (__pyx_v___pyx_state != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { /* "(tree fragment)":9 * __pyx_result = PrefixedDB.__new__(__pyx_type) @@ -19447,12 +19531,12 @@ * cdef __pyx_unpickle_PrefixedDB__set_state(PrefixedDB __pyx_result, tuple __pyx_state): */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 9, __pyx_L1_error) - __pyx_t_3 = __pyx_f_6plyvel_7_plyvel___pyx_unpickle_PrefixedDB__set_state(((struct __pyx_obj_6plyvel_7_plyvel_PrefixedDB *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_6plyvel_7_plyvel___pyx_unpickle_PrefixedDB__set_state(((struct __pyx_obj_6plyvel_7_plyvel_PrefixedDB *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "(tree fragment)":8 - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x11ea7f1 = (db, prefix))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x11ea7f1, 0xe9c0b3a, 0x8ba9a5d) = (db, prefix))" % __pyx_checksum) * __pyx_result = PrefixedDB.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_PrefixedDB__set_state(<PrefixedDB> __pyx_result, __pyx_state) @@ -19480,10 +19564,10 @@ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("plyvel._plyvel.__pyx_unpickle_PrefixedDB", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -20110,13 +20194,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif - #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -20255,13 +20339,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif - #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -20388,13 +20472,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif - #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -20524,13 +20608,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif - #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -20636,13 +20720,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif - #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -20737,13 +20821,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif - #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -20869,13 +20953,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif - #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -20994,13 +21078,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif - #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -21061,7 +21145,7 @@ {&__pyx_kp_u_Database_or_snapshot_is_closed, __pyx_k_Database_or_snapshot_is_closed, sizeof(__pyx_k_Database_or_snapshot_is_closed), 0, 1, 0, 0}, {&__pyx_n_s_Error, __pyx_k_Error, sizeof(__pyx_k_Error), 0, 0, 1, 1}, {&__pyx_n_s_IOError, __pyx_k_IOError, sizeof(__pyx_k_IOError), 0, 0, 1, 1}, - {&__pyx_kp_s_Incompatible_checksums_s_vs_0x11, __pyx_k_Incompatible_checksums_s_vs_0x11, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x11), 0, 0, 1, 0}, + {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_k_Incompatible_checksums_0x_x_vs_0, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0), 0, 0, 1, 0}, {&__pyx_n_s_Iterator, __pyx_k_Iterator, sizeof(__pyx_k_Iterator), 0, 0, 1, 1}, {&__pyx_n_s_IteratorInvalidError, __pyx_k_IteratorInvalidError, sizeof(__pyx_k_IteratorInvalidError), 0, 0, 1, 1}, {&__pyx_n_s_Lock, __pyx_k_Lock, sizeof(__pyx_k_Lock), 0, 0, 1, 1}, @@ -21078,7 +21162,7 @@ {&__pyx_n_s_UnicodeEncodeError, __pyx_k_UnicodeEncodeError, sizeof(__pyx_k_UnicodeEncodeError), 0, 0, 1, 1}, {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, {&__pyx_n_s_WriteBatch, __pyx_k_WriteBatch, sizeof(__pyx_k_WriteBatch), 0, 0, 1, 1}, - {&__pyx_kp_u__27, __pyx_k__27, sizeof(__pyx_k__27), 0, 1, 0, 0}, + {&__pyx_kp_u__28, __pyx_k__28, sizeof(__pyx_k__28), 0, 1, 0, 0}, {&__pyx_kp_u__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0, 0}, {&__pyx_kp_u__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 1, 0, 0}, {&__pyx_n_s_approximate_sizes, __pyx_k_approximate_sizes, sizeof(__pyx_k_approximate_sizes), 0, 0, 1, 1}, @@ -21470,6 +21554,9 @@ __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_self__snapshot_cannot_be_convert); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__26); __Pyx_GIVEREF(__pyx_tuple__26); + __pyx_tuple__27 = PyTuple_Pack(3, __pyx_int_18786289, __pyx_int_245107514, __pyx_int_146446941); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__27); + __Pyx_GIVEREF(__pyx_tuple__27); /* "plyvel/_plyvel.pyx":515 * @@ -21478,10 +21565,10 @@ * max_open_files=None, lru_cache_size=None, block_size=None, * block_restart_interval=None, max_file_size=None, */ - __pyx_tuple__28 = PyTuple_Pack(17, __pyx_n_s_name, __pyx_n_s_paranoid_checks, __pyx_n_s_write_buffer_size, __pyx_n_s_max_open_files, __pyx_n_s_lru_cache_size, __pyx_n_s_block_size, __pyx_n_s_block_restart_interval, __pyx_n_s_max_file_size, __pyx_n_s_compression, __pyx_n_s_bloom_filter_bits, __pyx_n_s_comparator, __pyx_n_s_comparator_name, __pyx_n_s_options, __pyx_n_s_st, __pyx_n_s_fsname, __pyx_n_s_create_if_missing, __pyx_n_s_error_if_exists); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 515, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__28); - __Pyx_GIVEREF(__pyx_tuple__28); - __pyx_codeobj__29 = (PyObject*)__Pyx_PyCode_New(1, 11, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_plyvel__plyvel_pyx, __pyx_n_s_repair_db, 515, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__29)) __PYX_ERR(0, 515, __pyx_L1_error) + __pyx_tuple__29 = PyTuple_Pack(17, __pyx_n_s_name, __pyx_n_s_paranoid_checks, __pyx_n_s_write_buffer_size, __pyx_n_s_max_open_files, __pyx_n_s_lru_cache_size, __pyx_n_s_block_size, __pyx_n_s_block_restart_interval, __pyx_n_s_max_file_size, __pyx_n_s_compression, __pyx_n_s_bloom_filter_bits, __pyx_n_s_comparator, __pyx_n_s_comparator_name, __pyx_n_s_options, __pyx_n_s_st, __pyx_n_s_fsname, __pyx_n_s_create_if_missing, __pyx_n_s_error_if_exists); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__29); + __Pyx_GIVEREF(__pyx_tuple__29); + __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(1, 11, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_plyvel__plyvel_pyx, __pyx_n_s_repair_db, 515, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 515, __pyx_L1_error) /* "plyvel/_plyvel.pyx":537 * @@ -21490,20 +21577,20 @@ * cdef Options options = Options() * cdef Status st */ - __pyx_tuple__30 = PyTuple_Pack(4, __pyx_n_s_name, __pyx_n_s_options, __pyx_n_s_st, __pyx_n_s_fsname); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__30); - __Pyx_GIVEREF(__pyx_tuple__30); - __pyx_codeobj__31 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__30, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_plyvel__plyvel_pyx, __pyx_n_s_destroy_db, 537, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__31)) __PYX_ERR(0, 537, __pyx_L1_error) + __pyx_tuple__31 = PyTuple_Pack(4, __pyx_n_s_name, __pyx_n_s_options, __pyx_n_s_st, __pyx_n_s_fsname); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__31); + __Pyx_GIVEREF(__pyx_tuple__31); + __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_plyvel__plyvel_pyx, __pyx_n_s_destroy_db, 537, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 537, __pyx_L1_error) /* "(tree fragment)":1 * def __pyx_unpickle_PrefixedDB(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ - __pyx_tuple__32 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__32); - __Pyx_GIVEREF(__pyx_tuple__32); - __pyx_codeobj__33 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__32, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PrefixedDB, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__33)) __PYX_ERR(1, 1, __pyx_L1_error) + __pyx_tuple__33 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__33); + __Pyx_GIVEREF(__pyx_tuple__33); + __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PrefixedDB, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(1, 1, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -21515,6 +21602,8 @@ __pyx_umethod_PyDict_Type_pop.type = (PyObject*)&PyDict_Type; if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); __pyx_int_18786289 = PyInt_FromLong(18786289L); if (unlikely(!__pyx_int_18786289)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_146446941 = PyInt_FromLong(146446941L); if (unlikely(!__pyx_int_146446941)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_245107514 = PyInt_FromLong(245107514L); if (unlikely(!__pyx_int_245107514)) __PYX_ERR(0, 1, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -21619,7 +21708,7 @@ if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6plyvel_7_plyvel_Iterator.tp_dictoffset && __pyx_type_6plyvel_7_plyvel_Iterator.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_6plyvel_7_plyvel_Iterator.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_UPDATE_DESCRIPTOR_DOC { PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_6plyvel_7_plyvel_Iterator, "__next__"); if (unlikely(!wrapper)) __PYX_ERR(0, 715, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { @@ -21999,10 +22088,10 @@ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = 0; - __Pyx_INCREF(__pyx_kp_u__27); + __Pyx_INCREF(__pyx_kp_u__28); __pyx_t_3 += 1; - __Pyx_GIVEREF(__pyx_kp_u__27); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_kp_u__27); + __Pyx_GIVEREF(__pyx_kp_u__28); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_kp_u__28); /* "plyvel/_plyvel.pyx":60 * @@ -23028,7 +23117,7 @@ return (equals == Py_EQ); } else { int result; -#if CYTHON_USE_UNICODE_INTERNALS +#if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000) Py_hash_t hash1, hash2; hash1 = ((PyBytesObject*)s1)->ob_shash; hash2 = ((PyBytesObject*)s2)->ob_shash; @@ -24372,6 +24461,9 @@ self = PyTuple_GetItem(args, 0); if (unlikely(!self)) { Py_DECREF(new_args); + PyErr_Format(PyExc_TypeError, + "unbound method %.200S() needs an argument", + cyfunc->func_qualname); return NULL; } result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw); @@ -24440,13 +24532,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, #endif -#if PY_VERSION_HEX >= 0x030800b1 +#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, #endif -#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, #endif }; @@ -24693,17 +24785,35 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { int ret = 0; PyObject *object_reduce = NULL; + PyObject *object_getstate = NULL; PyObject *object_reduce_ex = NULL; PyObject *reduce = NULL; PyObject *reduce_ex = NULL; PyObject *reduce_cython = NULL; PyObject *setstate = NULL; PyObject *setstate_cython = NULL; + PyObject *getstate = NULL; +#if CYTHON_USE_PYTYPE_LOOKUP + getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate); +#else + getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_getstate); + if (!getstate && PyErr_Occurred()) { + goto __PYX_BAD; + } +#endif + if (getstate) { #if CYTHON_USE_PYTYPE_LOOKUP - if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; + object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_getstate); #else - if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; + object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_n_s_getstate); + if (!object_getstate && PyErr_Occurred()) { + goto __PYX_BAD; + } #endif + if (object_getstate != getstate) { + goto __PYX_GOOD; + } + } #if CYTHON_USE_PYTYPE_LOOKUP object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; #else @@ -24748,6 +24858,8 @@ #if !CYTHON_USE_PYTYPE_LOOKUP Py_XDECREF(object_reduce); Py_XDECREF(object_reduce_ex); + Py_XDECREF(object_getstate); + Py_XDECREF(getstate); #endif Py_XDECREF(reduce); Py_XDECREF(reduce_ex); @@ -24897,7 +25009,7 @@ padding = PyUnicode_FromOrdinal(padding_char); if (likely(padding) && uoffset > prepend_sign + 1) { PyObject *tmp; - PyObject *repeat = PyInt_FromSize_t(uoffset - prepend_sign); + PyObject *repeat = PyInt_FromSsize_t(uoffset - prepend_sign); if (unlikely(!repeat)) goto done_or_error; tmp = PyNumber_Multiply(padding, repeat); Py_DECREF(repeat); @@ -25237,6 +25349,12 @@ #include "compile.h" #include "frameobject.h" #include "traceback.h" +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { @@ -25300,14 +25418,24 @@ PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject *ptype, *pvalue, *ptraceback; if (c_line) { c_line = __Pyx_CLineForTraceback(tstate, c_line); } py_code = __pyx_find_code_object(c_line ? -c_line : py_line); if (!py_code) { + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); - if (!py_code) goto bad; + if (!py_code) { + /* If the code object creation fails, then we should clear the + fetched exception references and propagate the new exception */ + Py_XDECREF(ptype); + Py_XDECREF(pvalue); + Py_XDECREF(ptraceback); + goto bad; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( @@ -26150,11 +26278,33 @@ /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { - char ctversion[4], rtversion[4]; - PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); - PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); - if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { + char ctversion[5]; + int same=1, i, found_dot; + const char* rt_from_call = Py_GetVersion(); + PyOS_snprintf(ctversion, 5, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); + found_dot = 0; + for (i = 0; i < 4; i++) { + if (!ctversion[i]) { + same = (rt_from_call[i] < '0' || rt_from_call[i] > '9'); + break; + } + if (rt_from_call[i] != ctversion[i]) { + same = 0; + break; + } + } + if (!same) { + char rtversion[5] = {'\0'}; char message[200]; + for (i=0; i<4; ++i) { + if (rt_from_call[i] == '.') { + if (found_dot) break; + found_dot = 1; + } else if (rt_from_call[i] < '0' || rt_from_call[i] > '9') { + break; + } + rtversion[i] = rt_from_call[i]; + } PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plyvel-1.4.0/plyvel/_version.py new/plyvel-1.5.0/plyvel/_version.py --- old/plyvel-1.4.0/plyvel/_version.py 2021-12-29 14:21:10.000000000 +0100 +++ new/plyvel-1.5.0/plyvel/_version.py 2022-10-26 18:08:46.000000000 +0200 @@ -5,4 +5,4 @@ # Note: don't add any non-trivial logic here; this file is also loaded # from setup.py file when the module has not yet been compiled! -__version__ = '1.4.0' +__version__ = '1.5.0' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plyvel-1.4.0/plyvel.egg-info/PKG-INFO new/plyvel-1.5.0/plyvel.egg-info/PKG-INFO --- old/plyvel-1.4.0/plyvel.egg-info/PKG-INFO 2021-12-29 14:26:37.000000000 +0100 +++ new/plyvel-1.5.0/plyvel.egg-info/PKG-INFO 2022-10-26 18:09:09.000000000 +0200 @@ -1,12 +1,11 @@ Metadata-Version: 2.1 Name: plyvel -Version: 1.4.0 +Version: 1.5.0 Summary: Plyvel, a fast and feature-rich Python interface to LevelDB Home-page: https://github.com/wbolster/plyvel Author: Wouter Bolsterlee Author-email: wou...@bolsterl.ee License: BSD License -Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Intended Audience :: Information Technology @@ -42,9 +41,7 @@ .. _Project page: https://github.com/wbolster/plyvel .. _Documentation: https://plyvel.readthedocs.io/ .. _PyPI page: http://pypi.python.org/pypi/plyvel/ -.. _LevelDB: http://code.google.com/p/leveldb/ +.. _LevelDB: https://github.com/google/leveldb Note that using a released version is recommended over a checkout from version control. See the installation docs for more information. - -