diff --git a/classes/panelLogs_historiquePistes.py b/classes/panelLogs_historiquePistes.py new file mode 100644 index 0000000000000000000000000000000000000000..2169f8a3e6145f12c5a386a090b79a38df6d091f --- /dev/null +++ b/classes/panelLogs_historiquePistes.py @@ -0,0 +1,243 @@ +""" +Class PanelLogs +""" + +from tkinter import ttk, Scrollbar, PanedWindow, Text +import sys, subprocess , os, io +import contextlib +from tkinter.constants import INSERT + +from pyAmakIHM.classes.panelCommandes import PanelCommandes + + +class PanelLogs(Text): + """ + Class PanelLogs + """ + + def __init__( + self, + root : 'Tk' + ) -> None : + + super().__init__(root,bg='white') + + """ + p = sub.Popen('./script',stdout=sub.PIPE,stderr=sub.PIPE) output, errors = p.communicate() + """ + + self.__root = root + + #self.__affichage = ttk.Treeview(self, columns = ("agent")) + self.__affichage=Text(self,height=300 , width=600) + + self.__affichage.insert ('20.0', "end" ) + # self.__affichage.place(height=300,width=600) + self.__affichage.pack() + + self.__affichage.pack(fill='both',expand='yes') + + #self.__affichage.place(height=400 , width=600) + """ + , relx=0.2575 + + self.__panelGraphiques = [] + """ + self.__affichageScroll = Scrollbar(self.__affichage,orient="vertical",command=self.__affichage.yview) + self.__affichageScroll2 = Scrollbar(self.__affichage,orient="horizontal",command=self.__affichage.xview) + + self.__affichage.configure(yscrollcommand=self.__affichageScroll.set) + self.__affichage.configure(yscrollcommand=self.__affichageScroll2.set) + + self.__affichageScroll.pack(side='right',fill='y') + self.__affichageScroll2.pack(side='bottom',fill='x') + + + def getText(self) -> Text : + return self.__affichage + + + def logsDisplay(self, message : str) -> None: + place=self.getText() + place.insert("end", message) + + + + """ + f=open("fichier.txt", 'w') + g=open("fichier.txt", 'w') + sys.stdout=f + sys.stderr=g + f.close() + g.close() + + os.system("touch fichier.txt") + + os.system("python main.py < fichier.txt") + + + with open("fichier.txt", 'w') as f: + contextlib.redirect_stdout(f) + contextlib.redirect_stderr(f) + + + x=open("fichier.txt", "r") + log= x.readline() + print(log) + x.close() + + #os.system("rm fichier.txt") + + self.__affichage.insert ('21.0', log) + + + + self.__affichage.column ( "#0" , width = 100 , minwidth = 10 , stretch = True ) + self.__affichage.column ( "agent" , width = 500 , minwidth = 100 , stretch = True) + + self.__affichage.heading ( "#0" , text = "Numero cycle" , anchor = "w" ) + self.__affichage.heading ( "agent" , text = "Comportement agent" , anchor = "w" ) + + self.__affichage.insert ( "" , 1 , "L01" , text = "Cycle 0" , values = (" ")) + + self.__affichage.insert ( "L01" , "end" , "L0101" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( 'Je te vois et je suis l agent 3 \n Je décide \n J agis ' ) ) + self.__affichage.insert ( "L01" , "end" , "L0102" , text = " " , values = ( "Je te vois et je suis l'agent 1 \n Je décide \n J'agis " ) ) + + + + self.__affichage.insert ( "" , 2 , "L02" , text = "Cycle 1" , values = (" ")) + + self.__affichage.insert ( "L02" , "end" , "L0201" , text = " " , values = ( "Je te vois et je suis l'agent 2 \n Je décide \n J'agis " ) ) + + self.__affichage.insert ( "L02" , "end" , "L0202" , text = " " , values = ( "Je te vois et je suis l'agent 1 \n Je décide \n J'agis " ) ) + self.__affichage.insert ( "L02" , "end" , "L0203" , text = " " , values = ( "Je te vois et je suis l'agent 3 \n Je décide \n J'agis " ) ) + + + self.__affichage.insert ( "" , 3 , "L03" , text = "Cycle 0" , values = (" ")) + + self.__affichage.insert ( "L03" , "end" , "L0301" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0302" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0303" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0304" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0305" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0306" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0307" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0308" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0309" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0310" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0311" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0312" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0313" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0314" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0315" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0316" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0317" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0318" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0319" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0320" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0321" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0322" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0323" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0324" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0325" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0326" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0327" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0328" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0329" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0330" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0331" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0332" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0333" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0334" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0335" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0336" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + self.__affichage.insert ( "L03" , "end" , "L0337" , text = "Je te vois et je suis l agent 3 Je décide J agis" , values = ( ' ' ) ) + + + self.__affichage.insert("" ,1,"L"+str(j), text="dfhk,") + + "L"+str(j) + + if (sys.stderr != ""): + self.__affichage.insert( "L"+str(j),"end" , text=sys.stderr) + j=j+1 + else: + + sys.stdout = StdoutRedirector(self) + + def ls_proc(): + return Popen(['ls'], stdout=PIPE) + + with ls_proc() as p: + if p.stdout: + for line in p.stdout: + self.__affichage.insert("",j,text=sys.stdout,values = (" ") ) + j+1 + if p.stderr: + for line in p.stderr: + self.__affichage.insert("",j,text= sys.stderr, values = (" ")) + j+1 + + + + + sys.stdout = redirect_stdout(self) + + sys.stderr = redirect_stderr(self) + + process the output of your_CLI_program + + + def redirect(module, method): + '''Redirects stdout from the method or function in module as a string.''' + proc = subprocess.Popen(["python", "-c","import " + module + ";" + module + "." + method + "()"], stdout=subprocess.PIPE) + out = proc.communicate()[0] + return out.decode('unicode_escape') + + + #with open((sys.stdout).name) as x: + with open((io.stdout).name) as x: + read_data=x.read + print(type(read_data)) + #self.__affichage.insert("end",str(open(sys.stderr))) + + + + with open(str(self.__affichage), 'w') as f: + with contextlib.redirect_stdout(f): + print('Hello, World') + + + + stream = io.StringIO() + write_to_stream = contextlib.redirect_stdout(stream) + + x=sys.stdout() + #print(type(write_to_stream)) + with write_to_stream: + print("This is written to the stream rather than stdout") + self.__affichage.insert ( "end", (sys.decode(write_to_stream ))) + +# with write_to_stream: +# print("This is also written to the stream") + print("This is written directly to stdout") + print(stream.getvalue()) + + print(type(stream)) + print(type(stream.getvalue())) + + p = subprocess.Popen('py','/home/aurelie/Documents/pyamak-noyau/pyAmakCore/tests/memory_leak/main.py' , stdout=subprocess.PIPE ,stderr=subprocess.PIPE ) + + while True: + line = sys.stdout.readline() + if not line: + break + #the real code does filtering here + print ("test:", line.rstrip()) + + """ + + + + #def ls_proc(root): + # return subprocess.Popen(['/home/aurelie/Documents/example/ant_example/antsLaunchExample.py'], stdout=subprocess.PIPE)