def __init__(self, **kwargs): MetaKernel.__init__(self, **kwargs) setStyle() self.ioHandler = GetIOHandler() self.Executor = GetExecutor() self.Declarer = GetDeclarer() #required for %%cpp -d magic self.ACLiC = invokeAclic self.magicloader = MagicLoader(self) self.completer = CppCompleter() self.completer.activate()
def __init__(self, **kwargs): MetaKernel.__init__(self, **kwargs) setStyle() self.ioHandler = GetIOHandler() self.Executor = GetExecutor() self.Declarer = GetDeclarer() #required for %%cpp -d magic self.ACLiC = invokeAclic self.magicloader = MagicLoader(self) self.parser = Parser(self.identifier_regex, self.func_call_regex, self.magic_prefixes, self.help_suffix) self.completer = CppCompleter() self.completer.activate()
class ROOTKernel(MetaKernel): # These two regexes are considered by the parser of the metakernel # there is no need to create one explicitly identifier_regex = r'(?:\w(?:\w|\.|->|::|\d)*)' func_call_regex = r'(?:\w(?:(?:\w|\.|->|::|\d))*)\([^\)\()]*\Z' implementation = 'ROOT' implementation_version = '1.0' language = 'c++' language_version = '0.1' language_info = { 'name': 'c++', 'codemirror_mode': 'text/x-c++src', 'mimetype': ' text/x-c++src', 'file_extension': '.C' } banner = "ROOT Kernel" def __init__(self, **kwargs): MetaKernel.__init__(self, **kwargs) setStyle() self.ioHandler = GetIOHandler() self.Executor = GetExecutor() self.Declarer = GetDeclarer() #required for %%cpp -d magic self.ACLiC = invokeAclic self.magicloader = MagicLoader(self) self.completer = CppCompleter() self.completer.activate() def __del__(self): self.Executor.Stop() self.Declarer.Stop() def get_completions(self, info): return self.completer._completeImpl(info['code']) def print_output(self, handler): streamDicts = handler.GetStreamsDicts() for streamDict in filter(lambda d: None != d, streamDicts): self.send_response(self.iopub_socket, 'stream', streamDict) def do_execute_direct(self, code, silent=False): if not code.strip(): return status = 'ok' try: RunAsyncAndPrint(self.Executor, code.encode('utf8'), self.ioHandler, self.print_output, silent, .1) drawers = GetDrawers() for drawer in drawers: for dobj in drawer.GetDrawableObjects(): self.Display(dobj) except KeyboardInterrupt: ROOT.gROOT.SetInterrupt() status = 'interrupted' self.ioHandler.EndCapture() if not silent: self.print_output(self.ioHandler) traceback = None reply = { 'status': status, 'execution_count': self.execution_count, 'payload': [], 'user_expressions': {}, } if status == 'interrupted': pass elif status == 'error': err = { 'ename': 'ename', 'evalue': 'evalue', 'traceback': traceback, } self.send_response(self.iopub_socket, 'error', err) reply.update(err) elif status == 'ok': pass else: raise ValueError("Invalid status: %r" % status)