This commit is contained in:
Jordon Brooks 2016-07-14 14:33:10 +01:00
parent 394beef34c
commit bb31f2821d
9 changed files with 195 additions and 156 deletions

73
inDevelopment/PyIDE.py Normal file
View file

@ -0,0 +1,73 @@
from tkinter import *
import sys
from tkinter.filedialog import askopenfilename, asksaveasfilename
def PyIDE():
def openFile():
file = askopenfilename(defaultextension=".py",
filetypes=[("Python .py", ".py"), ("Python .pyw", ".pyw")])
if file != "":
with open(file, "r") as openfile:
input.delete(0.0, END)
input.insert(0.0, openfile.read())
def save():
file = asksaveasfilename(defaultextension=".py",
filetypes=[("Python .py", ".py"), ("Python .pyw", ".pyw")])
if file != "":
with open(file, "w") as saveFile:
saveFile.write(input.get(0.0, END))
class TextRedirector(object):
def __init__(self, widget, tag="stdout"):
self.widget = widget
self.tag = tag
def write(self, str):
output.delete(0.0, END)
self.widget.configure(state="normal")
self.widget.insert("end", str, (self.tag,))
self.widget.configure(state="disabled")
self.widget.see(END)
def run():
exec(input.get(0.0, END))
rootInterpreter = Tk()
rootInterpreter.title("Terminal")
rootInterpreter.geometry("200x200")
rootInterpreter.minsize(200, 200)
menu = Menu(rootInterpreter)
rootInterpreter.config(menu=menu)
filemenu = Menu(menu)
menu.add_cascade(label="File", menu=filemenu)
filemenu.add_command(label="New")
filemenu.add_command(label="Open", command=openFile)
filemenu.add_command(label="Save", command=save)
filemenu.add_command(label="Save As", state=DISABLED)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=sys.exit)
output = Text(rootInterpreter, state=DISABLED, wrap="word")
output.configure(state=NORMAL)
output.configure(state=DISABLED)
output.pack(side=TOP, expand=YES, fill=BOTH)
input = Text(rootInterpreter)
input.focus()
input.pack(side=BOTTOM, expand=YES, fill=BOTH)
sys.stderr = TextRedirector(output, "stderr")
sys.stdout = TextRedirector(output, "stdout")
rootInterpreter.mainloop()
# rootInterpreter.protocol("WM_DELETE_WINDOW", closeApp)
PyIDE()

112
inDevelopment/pyMonitor.py Normal file
View file

@ -0,0 +1,112 @@
from tkinter import *
import threading
import cpuinfo.cpuinfo as cpuinfo
import psutil
class pyMonitor:
def storageRender(self):
def storage():
try:
storageFreeLabel.configure(text="Disk(0) Free: " + str(psutil.disk_usage("/").free) + " Bytes")
storageUsedLabel.configure(text="Disk(0) Used: " + str(psutil.disk_usage("/").used) + " Bytes")
storagePercentLabel.configure(text="Disk(0) Total: " + str(psutil.disk_usage("/").percent) + "%")
threading.Timer(1, storage)
except:
pass
storageUsageLabel = Label(self.storageFrame,
text="Disk(0) Total: " + str(psutil.disk_usage("/").total) + " Bytes")
storageUsedLabel = Label(self.storageFrame,
text="Disk(0) Used: " + str(psutil.disk_usage("/").used) + " Bytes")
storageFreeLabel = Label(self.storageFrame,
text="Disk(0) Free: " + str(psutil.disk_usage("/").free) + " Bytes")
storagePercentLabel = Label(self.storageFrame,
text="Disk(0) Used: " + str(psutil.disk_usage("/").percent) + "%")
storageUsageLabel.pack()
storageUsedLabel.pack()
storageFreeLabel.pack()
storagePercentLabel.pack()
storageThread = threading.Thread(target=storage, name="storage", daemon=True)
storageThread.start()
def ramRender(self):
def usedRam():
try:
usedRamLabel.configure(text="Used RAM: " + str(psutil.virtual_memory().used) + " Bytes")
avaailableRamLabel.configure(text="Available RAM: " + str(psutil.virtual_memory().available) + " Bytes")
percentRamLabel.configure(text="Used RAM: " + str(psutil.virtual_memory().percent) + "%")
threading.Timer(1, usedRam).start()
except:
pass
totalRamLabel = Label(self.ramFrame, text="Total RAM: " + str(psutil.virtual_memory().total) + " Bytes")
usedRamLabel = Label(self.ramFrame, text="Used RAM: " + str(psutil.virtual_memory().used) + " Bytes")
avaailableRamLabel = Label(self.ramFrame,
text="Available RAM: " + str(psutil.virtual_memory().available) + " Bytes")
percentRamLabel = Label(self.ramFrame,
text="Used RAM: " + str(psutil.virtual_memory().percent) + "%")
totalRamLabel.pack()
usedRamLabel.pack()
avaailableRamLabel.pack()
percentRamLabel.pack()
usedRamThread = threading.Thread(target=usedRam, name="usedRam", daemon=True)
usedRamThread.start()
def cpuRender(self):
def getUsage():
try:
cpuPercentLabel.configure(text="Usage: " + str(psutil.cpu_percent(interval=1)) + "%")
threading.Timer(1, getUsage).start()
except:
pass
cpuName = cpuinfo.get_cpu_info()["brand"]
cpuNameLabel = Label(self.cpuFrame, text="Name: " + cpuName)
cpuFreqActual = cpuinfo.get_cpu_info()["hz_actual"]
cpuFreqActualLabel = Label(self.cpuFrame, text="Actual Speed: " + cpuFreqActual)
cpuCoreCount = cpuinfo.get_cpu_info()["count"]
cpuCoreCountLabel = Label(self.cpuFrame, text="Cores: " + str(cpuCoreCount))
cpuPercentLabel = Label(self.cpuFrame, text="Usage: " + str(psutil.cpu_percent()) + "%")
cpuNameLabel.pack()
cpuFreqActualLabel.pack()
cpuCoreCountLabel.pack()
cpuPercentLabel.pack()
getUsageThread = threading.Thread(target=getUsage, name="getUsage", daemon=True)
getUsageThread.start()
def createContainers(self):
self.storageFrame = LabelFrame(self.window, text="Storage")
self.ramFrame = LabelFrame(self.window, text="RAM")
self.cpuFrame = LabelFrame(self.window, text="CPU")
self.storageFrame.pack(side=LEFT, expand=YES, fill=BOTH)
self.ramFrame.pack(side=LEFT, expand=YES, fill=BOTH)
self.cpuFrame.pack(side=LEFT, expand=YES, fill=BOTH)
cpuRenderThread = threading.Thread(target=self.cpuRender, name="cpuRender", daemon=True)
cpuRenderThread.start()
ramRenderThread = threading.Thread(target=self.ramRender, name="ramRender", daemon=True)
ramRenderThread.start()
storageRenderThread = threading.Thread(target=self.storageRender, name="storageRender", daemon=True)
storageRenderThread.start()
def __init__(self, master):
self.window = Toplevel(master)
self.window.title("pyMonitor")
# self.window.geometry("800x400")
containerThread = threading.Thread(target=self.createContainers, name="createContainers", daemon=True)
containerThread.start()
self.window.mainloop()