Hi all, these are just a couple of small fixes to the string support in Numexpr, and a test case for the string copy operation.
For the base patches: 1.http://www.mail-archive.com/[email protected]/msg01551.html 2.http://www.mail-archive.com/[email protected]/msg02261.html Cheers, :: Ivan Vilata i Balaguer >qo< http://www.carabos.com/ Cárabos Coop. V. V V Enjoy Data ""
Index: numexpr/tests/test_numexpr.py
===================================================================
--- numexpr/tests/test_numexpr.py.orig
+++ numexpr/tests/test_numexpr.py
@@ -326,10 +326,22 @@
self.assertEqual(resnx.dtype.name, 'int64')
class test_strings(NumpyTestCase):
- str_array1 = array(['foo', 'bar', '', ' '])
- str_array2 = array(['foo', '', 'x', ' '])
+ BLOCK_SIZE1 = 128
+ BLOCK_SIZE2 = 8
+ str_list1 = ['foo', 'bar', '', ' ']
+ str_list2 = ['foo', '', 'x', ' ']
+ str_nloops = len(str_list1) * (BLOCK_SIZE1 + BLOCK_SIZE2 + 1)
+ str_array1 = array(str_list1 * str_nloops)
+ str_array2 = array(str_list2 * str_nloops)
str_constant = 'doodoo'
+ def check_compare_copy(self):
+ sarr = self.str_array1
+ expr = 'sarr'
+ res1 = eval(expr)
+ res2 = evaluate(expr)
+ assert_array_equal(res1, res2)
+
def check_compare_array(self):
sarr1 = self.str_array1
sarr2 = self.str_array2
Index: numexpr/interpreter.c
===================================================================
--- numexpr/interpreter.c.orig
+++ numexpr/interpreter.c
@@ -317,6 +317,7 @@
break;
case OP_COPY_SS:
if (n == 0 || n == 1) return 's';
+ break;
case OP_PROD_IIN:
case OP_SUM_IIN:
if (n == 0 || n == 1) return 'i';
@@ -1216,7 +1217,8 @@
Py_INCREF(PyArray_DESCR(a));
PyObject *b = PyArray_SimpleNewFromDescr(1, dims, PyArray_DESCR(a));
if (!b) goto cleanup_and_exit;
- self->memsteps[i+1] = self->memsizes[i+1] = PyArray_ITEMSIZE(a);
+ self->memsteps[i+1] = 0;
+ self->memsizes[i+1] = PyArray_ITEMSIZE(a);
PyTuple_SET_ITEM(a_inputs, i+2*n_inputs, b); /* steals reference */
inputs[i] = PyArray_DATA(b);
if (typecode == PyArray_BOOL) {
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________ Numpy-discussion mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/numpy-discussion
