forked from pool/python-Cython
Accepting request 298594 from home:Nijel:branches:devel:languages:python
- Add python-numpy as BuildRequires to have more complete test coverage - Fix doctests in 32-bit environment (fix-32bit.patch) - Update to 0.22: Features added * C functions can coerce to Python functions, which allows passing them around as callable objects. * C arrays can be assigned by value and auto-coerce from Python iterables and to Python lists (and tuples). * Extern C functions can now be declared as cpdef to export them to the module's Python namespace. Extern C functions in pxd files export their values to their own module, iff it exists. * Anonymous C tuple types can be declared as (ctype1, ctype2, ...). * PEP 479: turn accidental StopIteration exceptions that exit generators into a RuntimeError, activated with future import "generator_stop". See http://legacy.python.org/dev/peps/pep-0479/ * Looping over ``reversed(range())`` is optimised in the same way as ``range()``. Patch by Favian Contreras. Bugs fixed * Mismatching 'except' declarations on signatures in .pxd and .pyx files failed to produce a compile error. * Failure to find any files for the path pattern(s) passed into ``cythonize()`` is now an error to more easily detect accidental typos. * The ``logaddexp`` family of functions in ``numpy.math`` now has correct declarations. * In Py2.6/7 and Py3.2, simple Cython memory views could accidentally be interpreted as non-contiguous by CPython, which could trigger a CPython bug when copying data from them, thus leading to data corruption. See CPython issues 12834 and 23349. OBS-URL: https://build.opensuse.org/request/show/298594 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Cython?expand=0&rev=56
This commit is contained in:
parent
6e06866e8f
commit
4cbbcbaf4f
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:43f64d225186ec7601249ebd1e8f8a7c33767974b493de6783c5b3dd0415bf35
|
|
||||||
size 2743480
|
|
3
Cython-0.22.tar.gz
Normal file
3
Cython-0.22.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:14307e7a69af9a0d0e0024d446af7e51cc0e3e4d0dfb10d36ba837e5e5844015
|
||||||
|
size 1584483
|
122
fix-32bit.patch
Normal file
122
fix-32bit.patch
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
From 65408e6c70074c4fec128805888d18c7e933895a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Behnel <stefan_ml@behnel.de>
|
||||||
|
Date: Fri, 13 Feb 2015 14:38:32 +0100
|
||||||
|
Subject: [PATCH] fix doctests in 32bit Py2.x
|
||||||
|
|
||||||
|
---
|
||||||
|
tests/run/carray_coercion.pyx | 23 +++++++++++++++++++----
|
||||||
|
tests/run/reversed_iteration.pyx | 35 +++++++++++++++++++++++------------
|
||||||
|
2 files changed, 42 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/run/carray_coercion.pyx b/tests/run/carray_coercion.pyx
|
||||||
|
index d73fcf4..f04f820 100644
|
||||||
|
--- a/tests/run/carray_coercion.pyx
|
||||||
|
+++ b/tests/run/carray_coercion.pyx
|
||||||
|
@@ -1,3 +1,18 @@
|
||||||
|
+# mode: run
|
||||||
|
+
|
||||||
|
+import sys
|
||||||
|
+IS_PY3 = sys.version_info[0] >= 3
|
||||||
|
+IS_32BIT_PY2 = not IS_PY3 and sys.maxint < 2**32
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+def unlongify(v):
|
||||||
|
+ # on 32bit Py2.x platforms, 'unsigned int' coerces to a Python long => fix doctest output here.
|
||||||
|
+ s = repr(v)
|
||||||
|
+ if IS_32BIT_PY2:
|
||||||
|
+ assert s.count('L') == s.count(',') + 1, s
|
||||||
|
+ s = s.replace('L', '')
|
||||||
|
+ return s
|
||||||
|
+
|
||||||
|
|
||||||
|
def from_int_array():
|
||||||
|
"""
|
||||||
|
@@ -30,8 +45,8 @@ cdef extern from "stdint.h":
|
||||||
|
|
||||||
|
def from_typedef_int_array():
|
||||||
|
"""
|
||||||
|
- >>> from_typedef_int_array()
|
||||||
|
- [1, 2, 3]
|
||||||
|
+ >>> unlongify(from_typedef_int_array())
|
||||||
|
+ '[1, 2, 3]'
|
||||||
|
"""
|
||||||
|
cdef uint32_t[3] v
|
||||||
|
v[0] = 1
|
||||||
|
@@ -42,8 +57,8 @@ def from_typedef_int_array():
|
||||||
|
|
||||||
|
cpdef tuple tuple_from_typedef_int_array():
|
||||||
|
"""
|
||||||
|
- >>> tuple_from_typedef_int_array()
|
||||||
|
- (1, 2, 3)
|
||||||
|
+ >>> unlongify(tuple_from_typedef_int_array())
|
||||||
|
+ '(1, 2, 3)'
|
||||||
|
"""
|
||||||
|
cdef uint32_t[3] v
|
||||||
|
v[0] = 1
|
||||||
|
diff --git a/tests/run/reversed_iteration.pyx b/tests/run/reversed_iteration.pyx
|
||||||
|
index 585d0df..0f55060 100644
|
||||||
|
--- a/tests/run/reversed_iteration.pyx
|
||||||
|
+++ b/tests/run/reversed_iteration.pyx
|
||||||
|
@@ -5,6 +5,17 @@ cimport cython
|
||||||
|
|
||||||
|
import sys
|
||||||
|
IS_PY3 = sys.version_info[0] >= 3
|
||||||
|
+IS_32BIT_PY2 = not IS_PY3 and sys.maxint < 2**32
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+def unlongify(v):
|
||||||
|
+ # on 32bit Py2.x platforms, 'unsigned int' coerces to a Python long => fix doctest output here.
|
||||||
|
+ s = repr(v)
|
||||||
|
+ if IS_32BIT_PY2:
|
||||||
|
+ assert s.count('L') == s.count(',') + 1, s
|
||||||
|
+ s = s.replace('L', '')
|
||||||
|
+ return s
|
||||||
|
+
|
||||||
|
|
||||||
|
def _reversed(it):
|
||||||
|
return list(it)[::-1]
|
||||||
|
@@ -764,10 +775,10 @@ def reversed_bytes_slice_step_only(bytes s):
|
||||||
|
@cython.test_assert_path_exists('//ForFromStatNode')
|
||||||
|
def reversed_unsigned(int a, int b):
|
||||||
|
"""
|
||||||
|
- >>> reversed_unsigned(0, 5)
|
||||||
|
- [4, 3, 2, 1, 0]
|
||||||
|
- >>> reversed_unsigned(1, 5)
|
||||||
|
- [4, 3, 2, 1]
|
||||||
|
+ >>> unlongify(reversed_unsigned(0, 5))
|
||||||
|
+ '[4, 3, 2, 1, 0]'
|
||||||
|
+ >>> unlongify(reversed_unsigned(1, 5))
|
||||||
|
+ '[4, 3, 2, 1]'
|
||||||
|
>>> reversed_unsigned(1, 1)
|
||||||
|
[]
|
||||||
|
"""
|
||||||
|
@@ -777,10 +788,10 @@ def reversed_unsigned(int a, int b):
|
||||||
|
@cython.test_assert_path_exists('//ForFromStatNode')
|
||||||
|
def reversed_unsigned_by_3(int a, int b):
|
||||||
|
"""
|
||||||
|
- >>> reversed_unsigned_by_3(0, 5)
|
||||||
|
- [3, 0]
|
||||||
|
- >>> reversed_unsigned_by_3(0, 7)
|
||||||
|
- [6, 3, 0]
|
||||||
|
+ >>> unlongify(reversed_unsigned_by_3(0, 5))
|
||||||
|
+ '[3, 0]'
|
||||||
|
+ >>> unlongify(reversed_unsigned_by_3(0, 7))
|
||||||
|
+ '[6, 3, 0]'
|
||||||
|
"""
|
||||||
|
cdef unsigned int i
|
||||||
|
return [i for i in reversed(range(a, b, 3))]
|
||||||
|
@@ -788,10 +799,10 @@ def reversed_unsigned_by_3(int a, int b):
|
||||||
|
@cython.test_assert_path_exists('//ForFromStatNode')
|
||||||
|
def range_unsigned_by_neg_3(int a, int b):
|
||||||
|
"""
|
||||||
|
- >>> range_unsigned_by_neg_3(-1, 6)
|
||||||
|
- [6, 3, 0]
|
||||||
|
- >>> range_unsigned_by_neg_3(0, 7)
|
||||||
|
- [7, 4, 1]
|
||||||
|
+ >>> unlongify(range_unsigned_by_neg_3(-1, 6))
|
||||||
|
+ '[6, 3, 0]'
|
||||||
|
+ >>> unlongify(range_unsigned_by_neg_3(0, 7))
|
||||||
|
+ '[7, 4, 1]'
|
||||||
|
"""
|
||||||
|
cdef unsigned int i
|
||||||
|
return [i for i in range(b, a, -3)]
|
@ -1,3 +1,50 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Apr 22 11:52:03 UTC 2015 - mcihar@suse.cz
|
||||||
|
|
||||||
|
- Add python-numpy as BuildRequires to have more complete test coverage
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Apr 22 11:01:47 UTC 2015 - mcihar@suse.cz
|
||||||
|
|
||||||
|
- Fix doctests in 32-bit environment (fix-32bit.patch)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Apr 22 09:10:30 UTC 2015 - mcihar@suse.cz
|
||||||
|
|
||||||
|
- Update to 0.22:
|
||||||
|
Features added
|
||||||
|
* C functions can coerce to Python functions, which allows passing them
|
||||||
|
around as callable objects.
|
||||||
|
* C arrays can be assigned by value and auto-coerce from Python iterables
|
||||||
|
and to Python lists (and tuples).
|
||||||
|
* Extern C functions can now be declared as cpdef to export them to
|
||||||
|
the module's Python namespace. Extern C functions in pxd files export
|
||||||
|
their values to their own module, iff it exists.
|
||||||
|
* Anonymous C tuple types can be declared as (ctype1, ctype2, ...).
|
||||||
|
* PEP 479: turn accidental StopIteration exceptions that exit generators
|
||||||
|
into a RuntimeError, activated with future import "generator_stop".
|
||||||
|
See http://legacy.python.org/dev/peps/pep-0479/
|
||||||
|
* Looping over ``reversed(range())`` is optimised in the same way as
|
||||||
|
``range()``. Patch by Favian Contreras.
|
||||||
|
Bugs fixed
|
||||||
|
* Mismatching 'except' declarations on signatures in .pxd and .pyx files failed
|
||||||
|
to produce a compile error.
|
||||||
|
* Failure to find any files for the path pattern(s) passed into ``cythonize()``
|
||||||
|
is now an error to more easily detect accidental typos.
|
||||||
|
* The ``logaddexp`` family of functions in ``numpy.math`` now has correct
|
||||||
|
declarations.
|
||||||
|
* In Py2.6/7 and Py3.2, simple Cython memory views could accidentally be
|
||||||
|
interpreted as non-contiguous by CPython, which could trigger a CPython
|
||||||
|
bug when copying data from them, thus leading to data corruption.
|
||||||
|
See CPython issues 12834 and 23349.
|
||||||
|
Other changes
|
||||||
|
* Preliminary support for defining the Cython language with a formal grammar.
|
||||||
|
To try parsing your files against this grammar, use the --formal_grammar directive.
|
||||||
|
Experimental.
|
||||||
|
* ``_`` is no longer considered a cacheable builtin as it could interfere with
|
||||||
|
gettext.
|
||||||
|
* Cythonize-computed metadata now cached in the generated C files.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Feb 5 11:35:45 UTC 2015 - hpj@urpla.net
|
Thu Feb 5 11:35:45 UTC 2015 - hpj@urpla.net
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package python-Cython
|
# spec file for package python-Cython
|
||||||
#
|
#
|
||||||
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: python-Cython
|
Name: python-Cython
|
||||||
Version: 0.21.1
|
Version: 0.22
|
||||||
Release: 0
|
Release: 0
|
||||||
Url: http://www.cython.org
|
Url: http://www.cython.org
|
||||||
Summary: The Cython compiler for writing C extensions for the Python language
|
Summary: The Cython compiler for writing C extensions for the Python language
|
||||||
@ -25,10 +25,14 @@ License: Apache-2.0
|
|||||||
Group: Development/Languages/Python
|
Group: Development/Languages/Python
|
||||||
Source: http://pypi.python.org/packages/source/C/Cython/Cython-%{version}.tar.gz
|
Source: http://pypi.python.org/packages/source/C/Cython/Cython-%{version}.tar.gz
|
||||||
Source1: python-Cython-rpmlintrc
|
Source1: python-Cython-rpmlintrc
|
||||||
|
# PATCH-FIX-UPSTREAM -- https://github.com/cython/cython/commit/65408e6c70074c4fec128805888d18c7e933895a
|
||||||
|
Patch0: fix-32bit.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: python-devel
|
BuildRequires: python-devel
|
||||||
|
BuildRequires: python-numpy
|
||||||
|
BuildRequires: python-numpy-devel
|
||||||
BuildRequires: python-xml
|
BuildRequires: python-xml
|
||||||
Provides: python-cython = %{version}
|
Provides: python-cython = %{version}
|
||||||
Obsoletes: python-cython < %{version}
|
Obsoletes: python-cython < %{version}
|
||||||
@ -60,6 +64,7 @@ code.
|
|||||||
sed -i "s|^#!.*||" Cython/Debugger/{libpython,Cygdb}.py cython.py
|
sed -i "s|^#!.*||" Cython/Debugger/{libpython,Cygdb}.py cython.py
|
||||||
# Fix EOL encoding
|
# Fix EOL encoding
|
||||||
sed -i "s|\r||" Demos/callback/{README.txt,cheesefinder.h} Demos/embed/Makefile.{unix,msc.static} Doc/primes.c
|
sed -i "s|\r||" Demos/callback/{README.txt,cheesefinder.h} Demos/embed/Makefile.{unix,msc.static} Doc/primes.c
|
||||||
|
%patch0 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
CFLAGS="%{optflags}" python setup.py build
|
CFLAGS="%{optflags}" python setup.py build
|
||||||
@ -79,7 +84,7 @@ rm -rf %{buildroot}%{python_sitearch}/__pycache__/
|
|||||||
# avoid conflicts with python 2 version
|
# avoid conflicts with python 2 version
|
||||||
|
|
||||||
%check
|
%check
|
||||||
python runtests.py
|
python runtests.py -vv
|
||||||
|
|
||||||
%post
|
%post
|
||||||
%_sbindir/update-alternatives \
|
%_sbindir/update-alternatives \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user