[Matrix-SIG] Bugfix for instantiation of type 'O' arrays

Charles G Waldman cgw@fnal.gov
Mon, 17 Jan 2000 17:15:33 -0600 (CST)


The bug:

Python 1.5.2+ (#7, Jan 13 2000, 16:18:27)  [GCC 2.95.2 19991024 (release)] on linux2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> from Numeric import *
>>> x=array(["abc","def","ghi"],'O')
>>> x
array([[abc , abc , abc ],
       [def , def , def ],
       [ghi , ghi , ghi ]],'O')
>>> 


The fix:

Index: Src/arrayobject.c
===================================================================
RCS file: /cvsroot/numpy/Numerical/Src/arrayobject.c,v
retrieving revision 1.2
diff -u -r1.2 arrayobject.c
--- Src/arrayobject.c	2000/01/14 18:53:24	1.2
+++ Src/arrayobject.c	2000/01/17 23:10:33
@@ -1778,7 +1778,7 @@
 		PyErr_SetString(PyExc_ValueError,"expect source sequence");
 		return NULL;
 	}
-	if (!((nd=discover_depth(s,99, type == PyArray_OBJECT)) > 0)) {
+	if (!((nd=discover_depth(s,99, type == PyArray_OBJECT || type == 'O')) > 0)) {
 		PyErr_SetString(PyExc_ValueError, "invalid input sequence");
 		return NULL;
 	}


And, while we're at it, a typo fix:

Index: README
===================================================================
RCS file: /cvsroot/numpy/Numerical/README,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 README
56c56
<    UserArray.py: changed indentation to all spaces for consistency. Fixed many bugs in UserArray.py and Matrix.py (Charles Wadman)
---
>    UserArray.py: changed indentation to all spaces for consistency. Fixed many bugs in UserArray.py and Matrix.py (Charles Waldman)