Unpickling python 2.2 UserArray objs in python 2.3

I have a large bunch of objects that subclass UserArray from Numeric 22. These objects were created and pickled in binary mode in Python2.2 and stored in a mysql database on Red hat 8. Using Python2.2, I can easily retrieve and unpickle the objects. I have just upgraded the system to Fedora Core 2 which supplies Python 2.3.3. After much hassle, I have been able to compile Numeric 1.0 (ver 23) and have tried to unpickle these objects. Now, I get a failure in the loads call. The code is: <retrieve blob from mysql> import cPickle obj = cPickle.loads(str(blob)) When this is called, the python interpreter (via IDLE) goes into a loop in the UserArray __getattr__ function.(line 198): return getattr(self.array,attr)
File "/usr/lib/python2.3/site-packages/Numeric/UserArray.py" line 198, in __getattr__ return getattr(self.array,attr)
No other error is reported, just a stack full of these lines. It seems that at this point, UserArray doesn't know that it has an 'array' attr. This worked just fine in Python2.2. Has something changed in Python2.3 cPickle functions or in how Numeric 23 handles pickle/unpickle that would make my Python2.2 blobs unusable in Python 2.3? Is there a solution for this, other than remaking my blobs (not an option - there are literally millions of them), or must I figure out how to access python2.2 for this code? So far as I can tell, the string I get back is exactly the same for both versions. Any help you can give me would be appreciated. Thanks sue giller
participants (1)
-
sagļ¼ hydrosphere.com