Michael Spencer wrote:
It seems that the culprit is pickle - used to send messages between the IDLE shell and the execution server.
Problem is associated with executing iteractive input in a subprocess.
>python idle.py -n
IDLE 1.1 ==== No Subprocess ==== >>> 1e10000 1.#INF >>>
Michael
>>> import pickle
>>> pickle.dumps(1e10000) 'F1.#INF\n.' >>> pickle.loads(_) Traceback (most recent call last): File "<input>", line 1, in ? File "c:\python24\lib\pickle.py", line 1394, in loads return Unpickler(file).load() File "c:\python24\lib\pickle.py", line 872, in load dispatch[key](self) File "c:\python24\lib\pickle.py", line 968, in load_float self.append(float(self.readline()[:-1])) ValueError: invalid literal for float(): 1.#INF >>> import cPickle as pickle >>> pickle.dumps(1e10000) 'F1.#INF\n.' >>> pickle.loads(_) Traceback (most recent call last): File "<input>", line 1, in ? ValueError: could not convert string to float >>>
It seems that somewhere IDLE traps this error and shows '1.0' instead. However, I can't follow the IDLE output code, so I won't try to track this down any further
IDLE 1.1 >>> 2e10000 1.0 >>> 3e10000 1.0 >>> 100e10000 1.0 >>> 999e1000 1.0 >>>
Michael
-- http://mail.python.org/mailman/listinfo/python-list