Add patch from github pull 371 to fix python 3.3 pickle issue
Remove cython .c source regeneration - fails now
This commit is contained in:
parent
8ab0d5559a
commit
0d2d06afa3
33
numpy-pull371.patch
Normal file
33
numpy-pull371.patch
Normal file
@ -0,0 +1,33 @@
|
||||
diff -up numpy-1.7.0b1/numpy/core/src/multiarray/methods.c.pull371 numpy-1.7.0b1/numpy/core/src/multiarray/methods.c
|
||||
--- numpy-1.7.0b1/numpy/core/src/multiarray/methods.c.pull371 2012-08-12 21:53:17.000000000 -0600
|
||||
+++ numpy-1.7.0b1/numpy/core/src/multiarray/methods.c 2012-08-22 22:07:17.287365026 -0600
|
||||
@@ -1587,8 +1587,9 @@ array_setstate(PyArrayObject *self, PyOb
|
||||
/* Check that the string is not interned */
|
||||
if (!_IsAligned(self) || swap || PyString_CHECK_INTERNED(rawdata)) {
|
||||
#else
|
||||
- /* Bytes are never interned */
|
||||
- if (!_IsAligned(self) || swap) {
|
||||
+ /* Bytes should always be considered immutable, but we just grab the
|
||||
+ * pointer if they are large, to save memory. */
|
||||
+ if (!_IsAligned(self) || swap || (len <= 1000)) {
|
||||
#endif
|
||||
npy_intp num = PyArray_NBYTES(self);
|
||||
fa->data = PyDataMem_NEW(num);
|
||||
diff -up numpy-1.7.0b1/numpy/core/tests/test_regression.py.pull371 numpy-1.7.0b1/numpy/core/tests/test_regression.py
|
||||
--- numpy-1.7.0b1/numpy/core/tests/test_regression.py.pull371 2012-08-12 21:53:17.000000000 -0600
|
||||
+++ numpy-1.7.0b1/numpy/core/tests/test_regression.py 2012-08-21 16:34:29.894303390 -0600
|
||||
@@ -1601,6 +1601,14 @@ class TestRegression(TestCase):
|
||||
s = re.sub("a(.)", "\x01\\1", "a_")
|
||||
assert_equal(s[0], "\x01")
|
||||
|
||||
+ def test_pickle_bytes_overwrite(self):
|
||||
+ if sys.version_info[0] >= 3:
|
||||
+ data = np.array([1], dtype='b')
|
||||
+ data = pickle.loads(pickle.dumps(data))
|
||||
+ data[0] = 0xdd
|
||||
+ bytestring = "\x01 ".encode('ascii')
|
||||
+ assert_equal(bytestring[0:1], '\x01'.encode('ascii'))
|
||||
+
|
||||
def test_structured_type_to_object(self):
|
||||
a_rec = np.array([(0,1), (3,2)], dtype='i4,i8')
|
||||
a_obj = np.empty((2,), dtype=object)
|
||||
24
numpy.spec
24
numpy.spec
@ -9,7 +9,7 @@
|
||||
|
||||
Name: numpy
|
||||
Version: 1.7.0
|
||||
Release: 0.2.%{relc}%{?dist}
|
||||
Release: 0.3.%{relc}%{?dist}
|
||||
Epoch: 1
|
||||
Summary: A fast multidimensional array facility for Python
|
||||
|
||||
@ -34,6 +34,10 @@ Patch2: 002-fix_PyUnicodeObject.patch
|
||||
# "FIX: Make sure the tests produce valid unicode"
|
||||
# copy of upstream commit 4234b6b13e3ee9da6fc1c24e9e8c442d77587837:
|
||||
Patch3: 4234b6b13e3ee9da6fc1c24e9e8c442d77587837.patch
|
||||
#
|
||||
# Copy bytes object when unpickling an array
|
||||
# https://github.com/numpy/numpy/pull/371
|
||||
Patch4: numpy-pull371.patch
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
||||
@ -104,24 +108,12 @@ This package includes a version of f2py that works properly with NumPy.
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1 -b .pull371
|
||||
|
||||
# workaround for rhbz#849713
|
||||
# http://mail.scipy.org/pipermail/numpy-discussion/2012-July/063530.html
|
||||
rm numpy/distutils/command/__init__.py && touch numpy/distutils/command/__init__.py
|
||||
|
||||
# Regenerate Cython c sources
|
||||
# This is needed with numpy-1.6.2.tar.gz with python 3.3 to avoid an exception
|
||||
# with an import call in the generated .c file in the tarball that uses the
|
||||
# old default of -1:
|
||||
# File "mtrand.pyx", line 126, in init mtrand (numpy/random/mtrand/mtrand.c:20679)
|
||||
# ValueError: level must be >= 0
|
||||
# due to the changes in import in 3.3
|
||||
# Regenerating with a newer Cython fixes it:
|
||||
pushd numpy/random/mtrand/
|
||||
rm -v mtrand.c
|
||||
cython mtrand.pyx
|
||||
popd
|
||||
|
||||
%if 0%{?with_python3}
|
||||
rm -rf %{py3dir}
|
||||
cp -a . %{py3dir}
|
||||
@ -286,6 +278,10 @@ rm -rf %{buildroot}
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Aug 22 2012 Orion Poplawski <orion@nwra.com> - 1:1.7.0-0.3.b1
|
||||
- Add patch from github pull 371 to fix python 3.3 pickle issue
|
||||
- Remove cython .c source regeneration - fails now
|
||||
|
||||
* Wed Aug 22 2012 Orion Poplawski <orion@nwra.com> - 1:1.7.0-0.2.b1
|
||||
- add workaround for rhbz#849713 (fixes FTBFS)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user