Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-Cython for openSUSE:Factory checked in at 2023-07-12 17:26:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-Cython (Old) and /work/SRC/openSUSE:Factory/.python-Cython.new.8922 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Cython" Wed Jul 12 17:26:05 2023 rev:72 rq:1098027 version:0.29.36 Changes: -------- --- /work/SRC/openSUSE:Factory/python-Cython/python-Cython.changes 2023-05-29 22:47:33.814226986 +0200 +++ /work/SRC/openSUSE:Factory/.python-Cython.new.8922/python-Cython.changes 2023-07-12 17:26:06.774061220 +0200 @@ -1,0 +2,20 @@ +Mon Jul 10 19:03:16 UTC 2023 - Matej Cepl <[email protected]> + +- Clean up SPEC file. + +------------------------------------------------------------------- +Sat Jul 8 20:26:51 UTC 2023 - Arun Persaud <[email protected]> + +- update to version 0.29.36: + * Async generators lost their return value in PyPy. (Github issue + :issue:`5465`) + * The outdated C macro _PyGC_FINALIZED() is no longer used in + Py3.9+. + * The deprecated Py_OptimizeFlag is no longer used in Python + 3.9+. (Github issue :issue:`5343`) + * Using the global __debug__ variable but not assertions could lead + to compile errors. + * The broken HTML template support was removed from Tempita. (Github + issue :issue:`3309`) + +------------------------------------------------------------------- Old: ---- Cython-0.29.35.tar.gz New: ---- Cython-0.29.36.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-Cython.spec ++++++ --- /var/tmp/diff_new_pack.ownpZ1/_old 2023-07-12 17:26:07.610066094 +0200 +++ /var/tmp/diff_new_pack.ownpZ1/_new 2023-07-12 17:26:07.618066140 +0200 @@ -16,10 +16,10 @@ # -%bcond_with test %{?sle15_python_module_pythons} +%bcond_with test Name: python-Cython -Version: 0.29.35 +Version: 0.29.36 Release: 0 Summary: The Cython compiler for writing C extensions for the Python language License: Apache-2.0 @@ -27,6 +27,8 @@ Source: https://files.pythonhosted.org/packages/source/C/Cython/Cython-%{version}.tar.gz Source1: python-Cython-rpmlintrc BuildRequires: %{python_module devel} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module wheel} BuildRequires: %{python_module xml} BuildRequires: fdupes BuildRequires: gcc-c++ @@ -54,10 +56,10 @@ %build export CFLAGS="%{optflags} -fno-strict-aliasing" -%python_build +%pyproject_wheel %install -%python_install +%pyproject_install for p in cython cythonize cygdb ; do %python_clone -a %{buildroot}%{_bindir}/$p done @@ -89,7 +91,7 @@ %python_alternative %{_bindir}/cython %python_alternative %{_bindir}/cythonize %{python_sitearch}/Cython/ -%{python_sitearch}/Cython-%{version}-py*.egg-info +%{python_sitearch}/Cython-%{version}*-info %{python_sitearch}/cython.py* %pycache_only %{python_sitearch}/__pycache__/cython*.py* %{python_sitearch}/pyximport/ ++++++ Cython-0.29.35.tar.gz -> Cython-0.29.36.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/.gitrev new/Cython-0.29.36/.gitrev --- old/Cython-0.29.35/.gitrev 2023-05-24 11:02:18.397117600 +0200 +++ new/Cython-0.29.36/.gitrev 2023-07-04 21:20:42.912309200 +0200 @@ -1 +1 @@ -5cef4fa97285b32d1e7d78c57398c464106d14ab +702bbc80fe2e346c4ddc58f074e0054da56e0ced diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/CHANGES.rst new/Cython-0.29.36/CHANGES.rst --- old/Cython-0.29.35/CHANGES.rst 2023-05-24 11:02:13.470214800 +0200 +++ new/Cython-0.29.36/CHANGES.rst 2023-07-04 21:20:38.236224400 +0200 @@ -2,6 +2,26 @@ Cython Changelog ================ +0.29.36 (2023-07-04) +==================== + +Bugs fixed +---------- + +* Async generators lost their return value in PyPy. + (Github issue :issue:`5465`) + +* The outdated C macro ``_PyGC_FINALIZED()`` is no longer used in Py3.9+. + +* The deprecated ``Py_OptimizeFlag`` is no longer used in Python 3.9+. + (Github issue :issue:`5343`) + +* Using the global ``__debug__`` variable but not assertions could lead to compile errors. + +* The broken HTML template support was removed from Tempita. + (Github issue :issue:`3309`) + + 0.29.35 (2023-05-24) ==================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/Cython/Compiler/Builtin.py new/Cython-0.29.36/Cython/Compiler/Builtin.py --- old/Cython-0.29.35/Cython/Compiler/Builtin.py 2023-05-24 11:02:13.470214800 +0200 +++ new/Cython-0.29.36/Cython/Compiler/Builtin.py 2023-07-04 21:20:38.236224400 +0200 @@ -417,9 +417,10 @@ init_builtin_types() init_builtin_funcs() - builtin_scope.declare_var( + entry = builtin_scope.declare_var( '__debug__', PyrexTypes.c_const_type(PyrexTypes.c_bint_type), - pos=None, cname='(!Py_OptimizeFlag)', is_cdef=True) + pos=None, cname='__pyx_assertions_enabled()', is_cdef=True) + entry.utility_code = UtilityCode.load_cached("AssertionsEnabled", "Exceptions.c") global list_type, tuple_type, dict_type, set_type, frozenset_type global bytes_type, str_type, unicode_type, basestring_type, slice_type diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/Cython/Compiler/ModuleNode.py new/Cython-0.29.36/Cython/Compiler/ModuleNode.py --- old/Cython-0.29.35/Cython/Compiler/ModuleNode.py 2023-05-24 11:02:13.478204000 +0200 +++ new/Cython-0.29.36/Cython/Compiler/ModuleNode.py 2023-07-04 21:20:38.240224400 +0200 @@ -1463,10 +1463,10 @@ # in Py3.4+, call tp_finalize() as early as possible code.putln("#if CYTHON_USE_TP_FINALIZE") if needs_gc: - finalised_check = '!_PyGC_FINALIZED(o)' + finalised_check = '!__Pyx_PyObject_GC_IsFinalized(o)' else: finalised_check = ( - '(!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))') + '(!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))') code.putln( "if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)" " && Py_TYPE(o)->tp_finalize) && %s) {" % finalised_check) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/Cython/Compiler/Nodes.py new/Cython-0.29.36/Cython/Compiler/Nodes.py --- old/Cython-0.29.35/Cython/Compiler/Nodes.py 2023-05-24 11:02:13.478204000 +0200 +++ new/Cython-0.29.36/Cython/Compiler/Nodes.py 2023-07-04 21:20:38.244224500 +0200 @@ -6214,8 +6214,10 @@ gil_message = "Raising exception" def generate_execution_code(self, code): + code.globalstate.use_utility_code( + UtilityCode.load_cached("AssertionsEnabled", "Exceptions.c")) code.putln("#ifndef CYTHON_WITHOUT_ASSERTIONS") - code.putln("if (unlikely(!Py_OptimizeFlag)) {") + code.putln("if (unlikely(__pyx_assertions_enabled())) {") code.mark_pos(self.pos) self.cond.generate_evaluation_code(code) code.putln( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/Cython/Shadow.py new/Cython-0.29.36/Cython/Shadow.py --- old/Cython-0.29.35/Cython/Shadow.py 2023-05-24 11:02:13.490188100 +0200 +++ new/Cython-0.29.36/Cython/Shadow.py 2023-07-04 21:20:38.256224600 +0200 @@ -1,7 +1,7 @@ # cython.* namespace for pure mode. from __future__ import absolute_import -__version__ = "0.29.35" +__version__ = "0.29.36" try: from __builtin__ import basestring diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/Cython/Tempita/_tempita.py new/Cython-0.29.36/Cython/Tempita/_tempita.py --- old/Cython-0.29.35/Cython/Tempita/_tempita.py 2023-05-24 11:02:13.490188100 +0200 +++ new/Cython-0.29.36/Cython/Tempita/_tempita.py 2023-07-04 21:20:38.256224600 +0200 @@ -33,11 +33,6 @@ import re import sys -import cgi -try: - from urllib import quote as url_quote -except ImportError: # Py3 - from urllib.parse import quote as url_quote import os import tokenize from io import StringIO @@ -45,8 +40,7 @@ from ._looper import looper from .compat3 import bytes, unicode_, basestring_, next, is_unicode, coerce_text -__all__ = ['TemplateError', 'Template', 'sub', 'HTMLTemplate', - 'sub_html', 'html', 'bunch'] +__all__ = ['TemplateError', 'Template', 'sub', 'bunch'] in_re = re.compile(r'\s+in\s+') var_re = re.compile(r'^[a-z_][a-z0-9_]*$', re.I) @@ -144,9 +138,8 @@ def from_filename(cls, filename, namespace=None, encoding=None, default_inherit=None, get_template=get_file_template): - f = open(filename, 'rb') - c = f.read() - f.close() + with open(filename, 'rb') as f: + c = f.read() if encoding: c = c.decode(encoding) return cls(content=c, name=filename, namespace=namespace, @@ -411,91 +404,6 @@ self.__class__.__name__, ' '.join(['%s=%r' % (k, v) for k, v in sorted(self.items())])) -############################################################ -## HTML Templating -############################################################ - - -class html(object): - - def __init__(self, value): - self.value = value - - def __str__(self): - return self.value - - def __html__(self): - return self.value - - def __repr__(self): - return '<%s %r>' % ( - self.__class__.__name__, self.value) - - -def html_quote(value, force=True): - if not force and hasattr(value, '__html__'): - return value.__html__() - if value is None: - return '' - if not isinstance(value, basestring_): - value = coerce_text(value) - if sys.version >= "3" and isinstance(value, bytes): - value = cgi.escape(value.decode('latin1'), 1) - value = value.encode('latin1') - else: - value = cgi.escape(value, 1) - if sys.version < "3": - if is_unicode(value): - value = value.encode('ascii', 'xmlcharrefreplace') - return value - - -def url(v): - v = coerce_text(v) - if is_unicode(v): - v = v.encode('utf8') - return url_quote(v) - - -def attr(**kw): - parts = [] - for name, value in sorted(kw.items()): - if value is None: - continue - if name.endswith('_'): - name = name[:-1] - parts.append('%s="%s"' % (html_quote(name), html_quote(value))) - return html(' '.join(parts)) - - -class HTMLTemplate(Template): - - default_namespace = Template.default_namespace.copy() - default_namespace.update(dict( - html=html, - attr=attr, - url=url, - html_quote=html_quote, - )) - - def _repr(self, value, pos): - if hasattr(value, '__html__'): - value = value.__html__() - quote = False - else: - quote = True - plain = Template._repr(self, value, pos) - if quote: - return html_quote(plain) - else: - return plain - - -def sub_html(content, **kw): - name = kw.get('__name') - tmpl = HTMLTemplate(content, name=name) - return tmpl.substitute(kw) - class TemplateDef(object): def __init__(self, template, func_name, func_signature, @@ -1131,11 +1039,6 @@ metavar="FILENAME", help="File to write output to (default stdout)") parser.add_option( - '--html', - dest='use_html', - action='store_true', - help="Use HTML style filling (including automatic HTML quoting)") - parser.add_option( '--env', dest='use_env', action='store_true', @@ -1162,19 +1065,13 @@ template_content = sys.stdin.read() template_name = '<stdin>' else: - f = open(template_name, 'rb') - template_content = f.read() - f.close() - if options.use_html: - TemplateClass = HTMLTemplate - else: - TemplateClass = Template - template = TemplateClass(template_content, name=template_name) + with open(template_name, 'rb') as f: + template_content = f.read() + template = Template(template_content, name=template_name) result = template.substitute(vars) if options.output: - f = open(options.output, 'wb') - f.write(result) - f.close() + with open(options.output, 'wb') as f: + f.write(result) else: sys.stdout.write(result) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/Cython/Utility/AsyncGen.c new/Cython-0.29.36/Cython/Utility/AsyncGen.c --- old/Cython-0.29.35/Cython/Utility/AsyncGen.c 2023-05-24 11:02:13.490188100 +0200 +++ new/Cython-0.29.36/Cython/Utility/AsyncGen.c 2023-07-04 21:20:38.256224600 +0200 @@ -202,7 +202,9 @@ static int __Pyx_async_gen_init_hooks(__pyx_PyAsyncGenObject *o) { +#if !CYTHON_COMPILING_IN_PYPY PyThreadState *tstate; +#endif PyObject *finalizer; PyObject *firstiter; @@ -212,15 +214,22 @@ o->ag_hooks_inited = 1; +#if CYTHON_COMPILING_IN_PYPY + finalizer = _PyEval_GetAsyncGenFinalizer(); +#else tstate = __Pyx_PyThreadState_Current; - finalizer = tstate->async_gen_finalizer; +#endif if (finalizer) { Py_INCREF(finalizer); o->ag_finalizer = finalizer; } +#if CYTHON_COMPILING_IN_PYPY + firstiter = _PyEval_GetAsyncGenFirstiter(); +#else firstiter = tstate->async_gen_firstiter; +#endif if (firstiter) { PyObject *res; #if CYTHON_UNPACK_METHODS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/Cython/Utility/Exceptions.c new/Cython-0.29.36/Cython/Utility/Exceptions.c --- old/Cython-0.29.35/Cython/Utility/Exceptions.c 2023-05-24 11:02:13.494182800 +0200 +++ new/Cython-0.29.36/Cython/Utility/Exceptions.c 2023-07-04 21:20:38.260224800 +0200 @@ -6,6 +6,32 @@ // __Pyx_GetException() +/////////////// AssertionsEnabled.init /////////////// +__Pyx_init_assertions_enabled(); + +/////////////// AssertionsEnabled.proto /////////////// + +#define __Pyx_init_assertions_enabled() + +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) + #define __pyx_assertions_enabled() (1) +#elif PY_VERSION_HEX < 0x03080000 || CYTHON_COMPILING_IN_PYPY || defined(Py_LIMITED_API) + #define __pyx_assertions_enabled() (!Py_OptimizeFlag) +#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030900A6 + // Py3.8+ has PyConfig from PEP 587, but only Py3.9 added read access to it. + // Py_OptimizeFlag is deprecated in Py3.12+ + static int __pyx_assertions_enabled_flag; + #define __pyx_assertions_enabled() (__pyx_assertions_enabled_flag) + + #undef __Pyx_init_assertions_enabled + static void __Pyx_init_assertions_enabled(void) { + __pyx_assertions_enabled_flag = ! _PyInterpreterState_GetConfig(__Pyx_PyThreadState_Current->interp)->optimization_level; + } +#else + #define __pyx_assertions_enabled() (!Py_OptimizeFlag) +#endif + + /////////////// PyThreadStateGet.proto /////////////// //@substitute: naming diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/Cython/Utility/ModuleSetupCode.c new/Cython-0.29.36/Cython/Utility/ModuleSetupCode.c --- old/Cython-0.29.35/Cython/Utility/ModuleSetupCode.c 2023-05-24 11:02:13.494182800 +0200 +++ new/Cython-0.29.36/Cython/Utility/ModuleSetupCode.c 2023-07-04 21:20:38.260224800 +0200 @@ -83,7 +83,7 @@ #define CYTHON_PEP489_MULTI_PHASE_INIT 1 #endif #undef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 0 + #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1 && PYPY_VERSION_NUM >= 0x07030C00) #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK @@ -445,10 +445,6 @@ /////////////// PythonCompatibility /////////////// -#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) - #define Py_OptimizeFlag 0 -#endif - #define __PYX_BUILD_PY_SSIZE_T "n" #define CYTHON_FORMAT_SSIZE_T "z" @@ -537,6 +533,12 @@ #define __Pyx_DefaultClassType PyType_Type #endif +#if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY + #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o) +#else + #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o) +#endif + #ifndef Py_TPFLAGS_CHECKTYPES #define Py_TPFLAGS_CHECKTYPES 0 #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/Cython/Utility/ObjectHandling.c new/Cython-0.29.36/Cython/Utility/ObjectHandling.c --- old/Cython-0.29.35/Cython/Utility/ObjectHandling.c 2023-05-24 11:02:13.494182800 +0200 +++ new/Cython-0.29.36/Cython/Utility/ObjectHandling.c 2023-07-04 21:20:38.260224800 +0200 @@ -194,11 +194,11 @@ // We always do a quick slot check because calling PyIter_Check() is so wasteful. iternextfunc iternext = Py_TYPE(iterator)->tp_iternext; if (likely(iternext)) { -#if CYTHON_USE_TYPE_SLOTS +#if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY next = iternext(iterator); if (likely(next)) return next; - #if PY_VERSION_HEX >= 0x02070000 + #if PY_VERSION_HEX >= 0x02070000 && CYTHON_COMPILING_IN_CPYTHON if (unlikely(iternext == &_PyObject_NextNotImplemented)) return NULL; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/PKG-INFO new/Cython-0.29.36/PKG-INFO --- old/Cython-0.29.35/PKG-INFO 2023-05-24 11:02:23.784952000 +0200 +++ new/Cython-0.29.36/PKG-INFO 2023-07-04 21:20:48.884419000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: Cython -Version: 0.29.35 +Version: 0.29.36 Summary: The Cython compiler for writing C extensions for the Python language. Home-page: http://cython.org/ Author: Robert Bradshaw, Stefan Behnel, Dag Seljebotn, Greg Ewing, et al. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/runtests.py new/Cython-0.29.36/runtests.py --- old/Cython-0.29.35/runtests.py 2023-05-24 11:02:13.514156000 +0200 +++ new/Cython-0.29.36/runtests.py 2023-07-04 21:20:38.276225000 +0200 @@ -68,7 +68,6 @@ from distutils.command.build_ext import build_ext as _build_ext from distutils import sysconfig -from distutils import ccompiler _to_clean = [] @atexit.register @@ -305,13 +304,14 @@ """ finds gcc version using Popen """ + cc = '' if language == 'cpp': - cc = sysconfig.get_config_var('CXX') - else: - cc = sysconfig.get_config_var('CC') + cc = os.environ.get('CXX') or sysconfig.get_config_var('CXX') if not cc: - cc = ccompiler.get_default_compiler() - + cc = os.environ.get('CC') or sysconfig.get_config_var('CC') + if not cc: + from distutils import ccompiler + cc = ccompiler.get_default_compiler() if not cc: return '' @@ -433,6 +433,7 @@ 'run.py_unicode_strings', # Py_UNICODE was removed 'compile.pylong', # PyLongObject changed its structure 'run.longintrepr', # PyLongObject changed its structure + 'pyximport', # 'imp' module was removed ]), } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/tests/buffers/bufaccess.pyx new/Cython-0.29.36/tests/buffers/bufaccess.pyx --- old/Cython-0.29.35/tests/buffers/bufaccess.pyx 2023-05-24 11:02:13.514156000 +0200 +++ new/Cython-0.29.36/tests/buffers/bufaccess.pyx 2023-07-04 21:20:38.280225300 +0200 @@ -972,9 +972,12 @@ we to the "buffer implementor" refcounting directly in the testcase. - >>> a, b, c = "globally_unique_string_23234123", {4:23}, [34,3] + >>> _x = 1 + >>> a, b, c = "globally_unique_string_2323412" + "3" * _x, {4:23}, [34,3] + >>> get_refcount(a), get_refcount(b), get_refcount(c) (2, 2, 2) + >>> A = ObjectMockBuffer(None, [a, b, c]) >>> printbuf_object(A, (3,)) 'globally_unique_string_23234123' 2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/tests/memoryview/memoryview.pyx new/Cython-0.29.36/tests/memoryview/memoryview.pyx --- old/Cython-0.29.35/tests/memoryview/memoryview.pyx 2023-05-24 11:02:13.526140000 +0200 +++ new/Cython-0.29.36/tests/memoryview/memoryview.pyx 2023-07-04 21:20:38.292225400 +0200 @@ -638,9 +638,12 @@ we to the "buffer implementor" refcounting directly in the testcase. - >>> a, b, c = "globally_unique_string_23234123", {4:23}, [34,3] + >>> _x = 1 + >>> a, b, c = "globally_unique_string_2323412" + "3" * _x, {4:23}, [34,3] + >>> get_refcount(a), get_refcount(b), get_refcount(c) (2, 2, 2) + >>> A = ObjectMockBuffer(None, [a, b, c]) >>> printbuf_object(A, (3,)) 'globally_unique_string_23234123' 2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/tests/memoryview/memslice.pyx new/Cython-0.29.36/tests/memoryview/memslice.pyx --- old/Cython-0.29.35/tests/memoryview/memslice.pyx 2023-05-24 11:02:13.526140000 +0200 +++ new/Cython-0.29.36/tests/memoryview/memslice.pyx 2023-07-04 21:20:38.292225400 +0200 @@ -1077,9 +1077,12 @@ we to the "buffer implementor" refcounting directly in the testcase. - >>> a, b, c = "globally_unique_string_23234123", {4:23}, [34,3] + >>> _x = 1 + >>> a, b, c = "globally_unique_string_2323412" + "3" * _x, {4:23}, [34,3] + >>> get_refcount(a), get_refcount(b), get_refcount(c) (2, 2, 2) + >>> A = ObjectMockBuffer(None, [a, b, c]) # , writable=False) >>> printbuf_object(A, (3,)) 'globally_unique_string_23234123' 2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/tests/pypy_bugs.txt new/Cython-0.29.36/tests/pypy_bugs.txt --- old/Cython-0.29.35/tests/pypy_bugs.txt 2023-05-24 11:02:13.526140000 +0200 +++ new/Cython-0.29.36/tests/pypy_bugs.txt 2023-07-04 21:20:38.292225400 +0200 @@ -18,7 +18,7 @@ external_ref_reassignment run.exttype_dealloc -# bugs in cpyext +# bugs in cpyext: PyNumber_InPlacePower with non-None modulus is not supported run.special_methods_T561 run.special_methods_T561_py2 @@ -35,4 +35,3 @@ run.exceptionrefcount run.capiimpl run.refcount_in_meth - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/tests/run/__debug__.srctree new/Cython-0.29.36/tests/run/__debug__.srctree --- old/Cython-0.29.35/tests/run/__debug__.srctree 2023-05-24 11:02:13.526140000 +0200 +++ new/Cython-0.29.36/tests/run/__debug__.srctree 2023-07-04 21:20:38.292225400 +0200 @@ -10,7 +10,7 @@ from distutils.core import setup from Cython.Build import cythonize -setup(ext_modules = cythonize('debug_test_cython.pyx')) +setup(ext_modules = cythonize('*.pyx')) ######## debug_test.py ######## @@ -47,6 +47,23 @@ "CYTHON: unexpected debug value %s, expected %s" % ( debug_test_cython.DBG, optimised)) +try: + import plain_debug +except ValueError: + assert DBG +except IndexError: + assert not DBG +else: + assert False + + +######## plain_debug.pyx ######## + +if __debug__: + raise ValueError("DEBUG!") +else: + raise IndexError("NOT DEBUG!") + ######## debug_test_cython.pyx ######## diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/tests/run/async_iter_pep492.pyx new/Cython-0.29.36/tests/run/async_iter_pep492.pyx --- old/Cython-0.29.35/tests/run/async_iter_pep492.pyx 2023-05-24 11:02:13.526140000 +0200 +++ new/Cython-0.29.36/tests/run/async_iter_pep492.pyx 2023-07-04 21:20:38.296225500 +0200 @@ -211,6 +211,9 @@ self.i += 1 return self.i +def has_getrefcount(): + import sys + return hasattr(sys, "getrefcount") def test_with_for(): """ @@ -223,8 +226,9 @@ manager = Manager(I) iterable = Iterable() - mrefs_before = sys.getrefcount(manager) - irefs_before = sys.getrefcount(iterable) + if has_getrefcount(): + mrefs_before = sys.getrefcount(manager) + irefs_before = sys.getrefcount(iterable) async def main(): async with manager: @@ -235,8 +239,9 @@ run_async(main()) print(I[0]) - assert sys.getrefcount(manager) == mrefs_before - assert sys.getrefcount(iterable) == irefs_before + if has_getrefcount(): + assert sys.getrefcount(manager) == mrefs_before + assert sys.getrefcount(iterable) == irefs_before ############## diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/tests/run/error_pos.srctree new/Cython-0.29.36/tests/run/error_pos.srctree --- old/Cython-0.29.35/tests/run/error_pos.srctree 2023-05-24 11:02:13.538123800 +0200 +++ new/Cython-0.29.36/tests/run/error_pos.srctree 2023-07-04 21:20:38.304225700 +0200 @@ -21,4 +21,4 @@ _, err = proc.communicate() # The error should contain the line number and the line text where the # undefined identifier is used. -assert b'line 3, in init error_pos' and b'abcdefg(line)' in err, err +assert b'line 3, in init error_pos' in err and b'abcdefg(line)' in err, err diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/tests/run/numpy_test.pyx new/Cython-0.29.36/tests/run/numpy_test.pyx --- old/Cython-0.29.35/tests/run/numpy_test.pyx 2023-05-24 11:02:13.546113300 +0200 +++ new/Cython-0.29.36/tests/run/numpy_test.pyx 2023-07-04 21:20:38.312225800 +0200 @@ -385,7 +385,6 @@ def inc1_int_t(np.ndarray[np.int_t] arr): arr[1] += 1 -def inc1_long_t(np.ndarray[np.long_t] arr): arr[1] += 1 def inc1_longlong_t(np.ndarray[np.longlong_t] arr): arr[1] += 1 def inc1_float_t(np.ndarray[np.float_t] arr): arr[1] += 1 def inc1_double_t(np.ndarray[np.double_t] arr): arr[1] += 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.35/tests/run/test_asyncgen.py new/Cython-0.29.36/tests/run/test_asyncgen.py --- old/Cython-0.29.35/tests/run/test_asyncgen.py 2023-05-24 11:02:13.554102700 +0200 +++ new/Cython-0.29.36/tests/run/test_asyncgen.py 2023-07-04 21:20:38.320226000 +0200 @@ -46,6 +46,11 @@ from unittest import skip return skip("needs Python 3.6 or later")(f) +def not_pypy(f): + if getattr(sys, "pypy_version_info", False): + from unittest import skip + return skip("cannot run on PyPy due to to finalizer")(f) + return f try: from types import coroutine as types_coroutine @@ -765,6 +770,7 @@ t.cancel() self.loop.run_until_complete(asyncio.sleep(0.01)) + @not_pypy @needs_py36_asyncio def test_async_gen_asyncio_gc_aclose_09(self): DONE = 0 ++++++ python-Cython-rpmlintrc ++++++ --- /var/tmp/diff_new_pack.ownpZ1/_old 2023-07-12 17:26:08.234069731 +0200 +++ /var/tmp/diff_new_pack.ownpZ1/_new 2023-07-12 17:26:08.238069754 +0200 @@ -1,5 +1,5 @@ addFilter('devel-file-in-non-devel-package .*/Cython/.*') -addFilter('devel-dependency python38-devel') addFilter('devel-dependency python39-devel') addFilter('devel-dependency python310-devel') +addFilter('devel-dependency python311-devel')
