ms = marshal.dumps(co)
return unpickle_code, (ms,)
-def unpickle_function(ms):
- return ms
+# XXX KBK 24Aug02 function pickling capability not used in Idle
+# def unpickle_function(ms):
+# return ms
-def pickle_function(fn):
- assert isinstance(fn, type.FunctionType)
- return `fn`
+# def pickle_function(fn):
+# assert isinstance(fn, type.FunctionType)
+# return `fn`
copy_reg.pickle(types.CodeType, pickle_code, unpickle_code)
-copy_reg.pickle(types.FunctionType, pickle_function, unpickle_function)
+# copy_reg.pickle(types.FunctionType, pickle_function, unpickle_function)
BUFSIZE = 8*1024
def __init__(self, addr, handlerclass=None):
if handlerclass is None:
handlerclass = RPCHandler
-# XXX KBK 25Jun02 Not used in Idlefork.
-# self.objtable = objecttable
SocketServer.TCPServer.__init__(self, addr, handlerclass)
def server_bind(self):
def get_request(self):
"Override TCPServer method, return already connected socket"
return self.socket, self.server_address
-
-
-# XXX The following two methods are not currently used in Idlefork.
-# def register(self, oid, object):
-# self.objtable[oid] = object
-
-# def unregister(self, oid):
-# try:
-# del self.objtable[oid]
-# except KeyError:
-# pass
-
objecttable = {}
nextseq = 1 # Requests coming from the client are odd numbered
def __init__(self, address, family=socket.AF_INET, type=socket.SOCK_STREAM):
- self.sock = socket.socket(family, type)
- self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- self.sock.bind(address)
- self.sock.listen(1)
+ self.listening_sock = socket.socket(family, type)
+ self.listening_sock.setsockopt(socket.SOL_SOCKET,
+ socket.SO_REUSEADDR, 1)
+ self.listening_sock.bind(address)
+ self.listening_sock.listen(1)
def accept(self):
- newsock, address = self.sock.accept()
+ working_sock, address = self.listening_sock.accept()
if address[0] == '127.0.0.1':
print>>sys.__stderr__, "Idle accepted connection from ", address
- SocketIO.__init__(self, newsock)
+ SocketIO.__init__(self, working_sock)
else:
print>>sys.__stderr__, "Invalid host: ", address
raise socket.error
import sys
import time
import socket
-import __main__
import rpc
def main():
def __init__(self, rpchandler):
self.rpchandler = rpchandler
- self.base_env_keys = __main__.__dict__.keys()
+ import __main__
+ self.locals = __main__.__dict__
def runcode(self, code):
- exec code in __main__.__dict__
-
- def clear_the_environment(self):
- global __main__
- env = __main__.__dict__
- for key in env.keys():
- if key not in self.base_env_keys:
- del env[key]
- env['__doc__'] = None
+ exec code in self.locals
def start_the_debugger(self, gui_adap_oid):
import RemoteDebugger