def _coconut_compile(self, source, *args, **kwargs): """Version of _compile that checks Coconut code. None means that the code should not be run as is. Any other value means that it can.""" if source.endswith("\n\n"): return True elif should_indent(source): return None else: return True
def _coconut_compile(self, source, *args, **kwargs): """Version of _compile that compiles Coconut code first.""" awaiting_input = ("\n" in source.rstrip() or should_indent(source)) and not source.endswith("\n\n") try: compiled = memoized_parse_block(source, none_if_not_found=awaiting_input) except CoconutException as err: if source.endswith("\n\n"): raise err.syntax_err() else: return None else: if compiled is None: return None else: return self._python_compile(compiled)
def _coconut_compile(self, source, *args, **kwargs): """Version of _compile that compiles Coconut code first.""" awaiting_input = ("\n" in source.rstrip() or should_indent(source) ) and not source.endswith("\n\n") try: compiled = memoized_parse_block(source, none_if_not_found=awaiting_input) except CoconutException as err: if source.endswith("\n\n"): raise err.syntax_err() else: return None else: if compiled is None: return None else: return self._python_compile(compiled)
def _coconut_compile(self, source, *args, **kwargs): """Version of _compile that compiles Coconut code. None means that the code should not be run as is. Any other value means that it can.""" if source.endswith("\n\n"): return True elif should_indent(source): return None elif "\n" not in source.rstrip(): # if at start try: memoized_parse_block(source) except CoconutException: return None else: return True else: return True
def handle_input(self, code): """Compiles Coconut interpreter input.""" if not self.prompt.multiline: if not should_indent(code): try: return self.comp.parse_block(code) except CoconutException: pass while True: line = self.get_input(more=True) if line is None: return None elif line: code += "\n" + line else: break try: return self.comp.parse_block(code) except CoconutException: logger.print_exc() return None
def handle_input(self, code): """Compile Coconut interpreter input.""" if not self.prompt.multiline: if not should_indent(code): try: return self.comp.parse_block(code) except CoconutException: pass while True: line = self.get_input(more=True) if line is None: return None elif line: code += "\n" + line else: break try: return self.comp.parse_block(code) except CoconutException: logger.display_exc() return None