class Kernel(object): def __init__(self, session, reply_socket, pub_socket): self.session = session self.reply_socket = reply_socket self.pub_socket = pub_socket self.user_ns = {} self.history = [] #self.Shell=InteractiveShell() self.compiler = InteractiveShell(user_ns=self.user_ns,user_global_ns=self.user_ns) self.compiler.init_alias() self.compiler.init_builtins() self.compiler.init_inspector() self.compiler.init_magics() self.compiler.init_pdb() self.compiler.init_sys_modules() self.compiler.init_instance_attrs() self.compiler.init_user_ns() #self.compiler = CommandCompiler() self.completer = KernelCompleter(self.user_ns) # Build dict of handlers for message types self.handlers = {} for msg_type in ['execute_request', 'complete_request']: self.handlers[msg_type] = getattr(self, msg_type) def abort_queue(self): while True: try: ident = self.reply_socket.recv(zmq.NOBLOCK) except zmq.ZMQError, e: if e.errno == zmq.EAGAIN: break else: assert self.reply_socket.rcvmore(), "Unexpected missing message part." msg = self.reply_socket.recv_json() print>>sys.__stdout__, "Aborting:" print>>sys.__stdout__, Message(msg) msg_type = msg['msg_type'] reply_type = msg_type.split('_')[0] + '_reply' reply_msg = self.session.msg(reply_type, {'status' : 'aborted'}, msg) print>>sys.__stdout__, Message(reply_msg) self.reply_socket.send(ident,zmq.SNDMORE) self.reply_socket.send_json(reply_msg) # We need to wait a bit for requests to come in. This can probably # be set shorter for true asynchronous clients. time.sleep(0.1)