Skip to content

Commit

Permalink
Merge pull request #217 from PIYUSH-MISHRA-00/patch-1
Browse files Browse the repository at this point in the history
A Python Interpreter
  • Loading branch information
AnanyaDas162 authored Oct 15, 2022
2 parents 54a8655 + f305c4d commit d1e3ac4
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 0 deletions.
2 changes: 2 additions & 0 deletions ni_sh_a.char-IDE/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# ni_sh_a.char-IDE
A simple IDE to execute Python codes
69 changes: 69 additions & 0 deletions ni_sh_a.char-IDE/ni-sh-a-char.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
from tkinter import *
from tkinter.filedialog import asksaveasfilename, askopenfilename
import subprocess

compiler = Tk()
compiler.title('ni_sh_a.char IDE')
file_path = ''


def set_file_path(path):
global file_path
file_path = path


def open_file():
path = askopenfilename(filetypes=[('Python Files', '*.py')])
with open(path, 'r') as file:
code = file.read()
editor.delete('1.0', END)
editor.insert('1.0', code)
set_file_path(path)


def save_as():
if file_path == '':
path = asksaveasfilename(filetypes=[('Python Files', '*.py')])
else:
path = file_path
with open(path, 'w') as file:
code = editor.get('1.0', END)
file.write(code)
set_file_path(path)


def run():
if file_path == '':
save_prompt = Toplevel()
text = Label(save_prompt, text='Please save your code')
text.pack()
return
command = f'python {file_path}'
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
output, error = process.communicate()
code_output.insert('1.0', output)
code_output.insert('1.0', error)


menu_bar = Menu(compiler)

file_menu = Menu(menu_bar, tearoff=0)
file_menu.add_command(label='Open', command=open_file)
file_menu.add_command(label='Save', command=save_as)
file_menu.add_command(label='Save As', command=save_as)
file_menu.add_command(label='Exit', command=exit)
menu_bar.add_cascade(label='File', menu=file_menu)

run_bar = Menu(menu_bar, tearoff=0)
run_bar.add_command(label='Run', command=run)
menu_bar.add_cascade(label='Run', menu=run_bar)

compiler.config(menu=menu_bar)

editor = Text()
editor.pack()

code_output = Text(height=10)
code_output.pack()

compiler.mainloop()

0 comments on commit d1e3ac4

Please sign in to comment.