Created on 2004-01-21 00:20 by exarkun, last changed 2004-01-21 01:28 by tim.peters. This issue is now closed.
|msg19730 - (view)||Author: Jean-Paul Calderone (exarkun) *||Date: 2004-01-21 00:20|
>>> import pickle >>> pickle.dumps(1e100000, 2) Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/lib/python2.3/pickle.py", line 1386, in dumps Pickler(file, protocol, bin).dump(obj) File "/usr/lib/python2.3/pickle.py", line 231, in dump self.save(obj) File "/usr/lib/python2.3/pickle.py", line 293, in save f(self, obj) # Call unbound method with explicit self File "/usr/lib/python2.3/pickle.py", line 489, in save_float self.write(BINFLOAT + pack('>d', obj)) SystemError: frexp() result out of range Prior to BINFLOAT, float infinity could successfully be pickled. The right thing to do here seems to be to catch the exception and fall back to a FLOAT (string representation) token.
|msg19731 - (view)||Author: Tim Peters (tim.peters) *||Date: 2004-01-21 01:28|
Logged In: YES user_id=31435 Closed as Duplicate. See <http://www.python.org/sf/445484>. The feature request is part of PEP 42. Python currently has no support for infinities, NaNs, or signed zeroes in pickles; if you think you saw one of those work now, it's a platform accident (in particular, whether the string form of an infinity works depends entirely on your platform C library, and such pickles are not portable).