コード例 #1
0
 def run(self, code):
     output = io.StringIO()
     with contextlib.redirect_stdout(output):
         with contextlib.redirect_stderr(output):
             for line in code.splitlines():
                 self.console.push(line)
     return {'output': str(output.getvalue())}
コード例 #2
0
ファイル: interpreter.py プロジェクト: yrapop01/fable
def save_last_expr(code, var):
    try:
        tree = ast.parse(code)
        if not tree.body or not isinstance(tree.body[-1], _ast.Expr):
            return code, False

        row = tree.body[-1].lineno - 1
        col = tree.body[-1].col_offset
        lines = code.splitlines()
        lines[row] = lines[row][:col] + var + '=' + lines[row][col:]

        return '\n'.join(lines), True
    except Exception:
        traceback.print_exc()
        return code, False
コード例 #3
0
ファイル: __main__.py プロジェクト: stalker55/markplates
    def import_function(
        self, source, function_name, language=None, filename=False
    ):
        """ Search for and extract a function."""
        source_name = self.path / source
        code = find_in_source(source_name, function_name)
        if not code:
            raise Exception(f"Function not found: {function_name}")

        output_lines = code.splitlines(keepends=True)
        self._strip_trailing_blanks(output_lines)
        output_lines = left_justify(output_lines)
        self._add_filename(filename, source, output_lines)
        self._add_language(language, output_lines)
        return "".join(output_lines).rstrip()
コード例 #4
0
	def OnEditCopyCode(self, command, code):
		""" Sanitizes code from interactive window, removing prompts and output,
			and inserts it in the clipboard."""
		code=self.GetSelText()
		lines=code.splitlines()
		out_lines=[]
		for line in lines:
			if line.startswith(sys.ps1):
				line=line[len(sys.ps1):]
				out_lines.append(line)
			elif line.startswith(sys.ps2):
				line=line[len(sys.ps2):]
				out_lines.append(line)
		out_code=os.linesep.join(out_lines)
		win32clipboard.OpenClipboard()
		try:
			win32clipboard.SetClipboardData(win32clipboard.CF_UNICODETEXT, str(out_code))
		finally:
			win32clipboard.CloseClipboard()
コード例 #5
0
	def OnEditCopyCode(self, command, code):
		""" Sanitizes code from interactive window, removing prompts and output,
			and inserts it in the clipboard."""
		code=self.GetSelText()
		lines=code.splitlines()
		out_lines=[]
		for line in lines:
			if line.startswith(sys.ps1):
				line=line[len(sys.ps1):]
				out_lines.append(line)
			elif line.startswith(sys.ps2):
				line=line[len(sys.ps2):]
				out_lines.append(line)
		out_code=os.linesep.join(out_lines)
		win32clipboard.OpenClipboard()
		try:
			win32clipboard.SetClipboardData(win32clipboard.CF_UNICODETEXT, unicode(out_code))
		finally:
			win32clipboard.CloseClipboard()