[Python-checkins] python/dist/src/Lib/idlelib NEWS.txt, 1.23.4.11, 1.23.4.12 idlever.py, 1.15.4.5, 1.15.4.6 rpc.py, 1.26, 1.26.8.1

kbk at users.sourceforge.net kbk at users.sourceforge.net
Wed Jan 19 02:44:12 CET 2005


Update of /cvsroot/python/python/dist/src/Lib/idlelib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32372

Modified Files:
      Tag: release23-maint
	NEWS.txt idlever.py rpc.py 
Log Message:
Backport rpc.py rev 1.28 dating from 21Jan04

rpc.py:SocketIO - Large modules were generating large pickles when downloaded
to the execution server.  The return of the OK response from the subprocess
initialization was interfering and causing the sending socket to be not
ready.  Add an IO ready test to fix this.  Moved the polling IO ready test
into pollpacket().

Fix typo in rpc.py, s/b "pickle.PicklingError" not "pickle.UnpicklingError".

idlever.py should be 1.0.4 to align with NEWS.txt.  There was no IDLE release
at 2.3.1 which accounts for the unsync.

M NEWS.txt
M idlever.py
M rpc.py


Index: NEWS.txt
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/NEWS.txt,v
retrieving revision 1.23.4.11
retrieving revision 1.23.4.12
diff -u -d -r1.23.4.11 -r1.23.4.12
--- NEWS.txt	17 Jan 2005 20:34:49 -0000	1.23.4.11
+++ NEWS.txt	19 Jan 2005 01:44:06 -0000	1.23.4.12
@@ -3,6 +3,14 @@
 
 *Release date: XX-Jan-2005*
 
+- rpc.py:SocketIO - Large modules were generating large pickles when downloaded
+  to the execution server.  The return of the OK response from the subprocess
+  initialization was interfering and causing the sending socket to be not
+  ready.  Add an IO ready test to fix this.  Moved the polling IO ready test
+  into pollpacket(). (Backporting rpc.py rev 1.28 21Jan04)
+
+- Fix typo in rpc.py, s/b "pickle.PicklingError" not "pickle.UnpicklingError".
+
 - If an extension can't be loaded, print warning and skip it instead of
   erroring out.
 

Index: idlever.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/idlever.py,v
retrieving revision 1.15.4.5
retrieving revision 1.15.4.6
diff -u -d -r1.15.4.5 -r1.15.4.6
--- idlever.py	23 Dec 2004 04:33:50 -0000	1.15.4.5
+++ idlever.py	19 Jan 2005 01:44:06 -0000	1.15.4.6
@@ -1 +1 @@
-IDLE_VERSION = "1.0.5"
+IDLE_VERSION = "1.0.4"

Index: rpc.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/rpc.py,v
retrieving revision 1.26
retrieving revision 1.26.8.1
diff -u -d -r1.26 -r1.26.8.1
--- rpc.py	5 Jun 2003 23:51:28 -0000	1.26
+++ rpc.py	19 Jan 2005 01:44:06 -0000	1.26.8.1
@@ -320,23 +320,20 @@
         self.debug("putmessage:%d:" % message[0])
         try:
             s = pickle.dumps(message)
-        except pickle.UnpicklingError:
+        except pickle.PicklingError:
             print >>sys.__stderr__, "Cannot pickle:", `message`
             raise
         s = struct.pack("<i", len(s)) + s
         while len(s) > 0:
             try:
-                n = self.sock.send(s)
+                r, w, x = select.select([], [self.sock], [])
+                n = self.sock.send(s[:BUFSIZE])
             except (AttributeError, socket.error):
                 # socket was closed
                 raise IOError
             else:
                 s = s[n:]
 
-    def ioready(self, wait):
-        r, w, x = select.select([self.sock.fileno()], [], [], wait)
-        return len(r)
-
     buffer = ""
     bufneed = 4
     bufstate = 0 # meaning: 0 => reading count; 1 => reading data
@@ -344,7 +341,8 @@
     def pollpacket(self, wait):
         self._stage0()
         if len(self.buffer) < self.bufneed:
-            if not self.ioready(wait):
+            r, w, x = select.select([self.sock.fileno()], [], [], wait)
+            if len(r) == 0:
                 return None
             try:
                 s = self.sock.recv(BUFSIZE)
@@ -377,7 +375,7 @@
             return None
         try:
             message = pickle.loads(packet)
-        except:
+        except pickle.UnpicklingError:
             print >>sys.__stderr__, "-----------------------"
             print >>sys.__stderr__, "cannot unpickle packet:", `packet`
             traceback.print_stack(file=sys.__stderr__)



More information about the Python-checkins mailing list