コード例 #1
0
ファイル: SearchCSV.py プロジェクト: nakulrathore/CSV_Play
 def initUI(self):
   
     self.parent.title("Review")
     self.pack(fill=BOTH, expand=True)
     labelfont20 = ('Roboto', 20, 'bold')
     labelfont12 = ('Roboto', 12, 'bold')
     
     frame0 = Frame(self)
     frame0.pack()
     
     lbl0 = Label(frame0, text="Hi USER")
     lbl0.config(font=labelfont20)    
     lbl0.pack( padx=5, pady=5)
     lbl00 = Label(frame0, text="Search here")
     lbl00.config(font=labelfont12)
     lbl00.pack( padx=5, pady=5)
     
     
     frame1 = Frame(self)
     frame1.pack()
     
     lbl1 = Label(frame1, text="min %", width=9)
     lbl1.pack(side=LEFT, padx=7, pady=5)           
    
     self.entry1 = Entry(frame1,width=20)
     self.entry1.pack(padx=5, expand=True)
     
     
     
     
     
     frame6 = Frame(self)
     frame6.pack()
     closeButton = Button(frame6, text="Get Names",width=12,command=self.getDate)
     closeButton.pack(padx=5, pady=5)
     
     frame7 = Frame(self)
     frame7.pack()
     closeButton1 = Button(frame7, text="Open in excel",width=15,command=self.openDate)
     closeButton1.pack(padx=5, pady=5)
     
     
     
     frame000 = Frame(self)
     frame000.pack()
     self.lbl000= Label(frame000, text=" ")
     self.lbl000.config(font=labelfont12)    
     self.lbl000.pack( padx=5, pady=5)
     
     frame00a = Frame(self)
     frame00a.pack()
     self.lbl00a= Label(frame000, text=" ")
     self.lbl00a.pack( padx=5, pady=5)
コード例 #2
0
    def initUI(self):

        self.parent.title("Review")
        self.pack(fill=BOTH, expand=True)
        labelfont20 = ('Roboto', 20, 'bold')
        labelfont12 = ('Roboto', 12, 'bold')

        frame0 = Frame(self)
        frame0.pack()

        lbl0 = Label(frame0, text="Hi USER")
        lbl0.config(font=labelfont20)
        lbl0.pack(padx=5, pady=5)
        lbl00 = Label(frame0, text="Search here")
        lbl00.config(font=labelfont12)
        lbl00.pack(padx=5, pady=5)

        frame1 = Frame(self)
        frame1.pack()

        lbl1 = Label(frame1, text="min %", width=9)
        lbl1.pack(side=LEFT, padx=7, pady=5)

        self.entry1 = Entry(frame1, width=20)
        self.entry1.pack(padx=5, expand=True)

        frame6 = Frame(self)
        frame6.pack()
        closeButton = Button(frame6,
                             text="Get Names",
                             width=12,
                             command=self.getDate)
        closeButton.pack(padx=5, pady=5)

        frame7 = Frame(self)
        frame7.pack()
        closeButton1 = Button(frame7,
                              text="Open in excel",
                              width=15,
                              command=self.openDate)
        closeButton1.pack(padx=5, pady=5)

        frame000 = Frame(self)
        frame000.pack()
        self.lbl000 = Label(frame000, text=" ")
        self.lbl000.config(font=labelfont12)
        self.lbl000.pack(padx=5, pady=5)

        frame00a = Frame(self)
        frame00a.pack()
        self.lbl00a = Label(frame000, text=" ")
        self.lbl00a.pack(padx=5, pady=5)
コード例 #3
0
class AudioFader(Frame):
    def __init__(self, master, get_gain, set_gain, label=''):
        Frame.__init__(self, master, width=FADER_WIDTH, height=FADER_HEIGHT)
        self.get_gain = get_gain
        self._set_gain = set_gain

        if isinstance(label, StringVar):
            Label(self, textvar=label, width=15).pack()
        else:
            Label(self, text=label, width=15).pack()
        self.gain_label = Label(self)

        gain_scale = Scale(self, from_=1, to=0, command=self.set_gain, orient='vertical')
        gain_scale.set(self.get_gain())
        gain_scale.pack()

        self.gain_label.pack()

    def set_gain(self, value):
        gain = float(value)
        self._set_gain(gain)
        self.gain_label.config(text='%1.2f' % gain)
コード例 #4
0
class MainControlFrame(Frame):
    def __init__(self, master, sequencer):
        Frame.__init__(self, master)
        self.sequencer = sequencer

        self.control_label = Label(self, text="Control")

        self.start_button = Button(self, text="Start")
        self.stop_button = Button(self, text="Stop")

        self.start_button.config(command=self.sequencer.play)
        self.stop_button.config(command=self.sequencer.stop)

        self.control_label.pack()
        self.start_button.pack()
        self.stop_button.pack()

        Label(self, text='Tempo').pack()
        self.tempo_label = Label(self)
        self.tempo_label.pack()

        def set_tempo(v):
            tempo = float(v)
            self.sequencer.set_speed(tempo)
            self.tempo_label.config(text='%3.0f' % tempo)

        tempo_scale = Scale(self, from_=400, to=5, command=set_tempo, orient='vertical')
        tempo_scale.set(self.sequencer.speed)
        tempo_scale.pack()

        measure_control_frame = Frame(self)
        measure_control_frame.pack()

        self.measure_resolution = StringVar(measure_control_frame)
        self.measure_resolution.set(self.sequencer.measure_resolution)
        self.beats_per_measure = StringVar(measure_control_frame)
        self.beats_per_measure.set(self.sequencer.beats_per_measure)

        Label(measure_control_frame, text='Resolution').grid(row=0, column=0, sticky='E')
        measure_resolution_entry = Entry(measure_control_frame, textvariable=self.measure_resolution, width=3)
        measure_resolution_entry.grid(row=0, column=1)

        Label(measure_control_frame, text='Beats').grid(row=1, column=0, sticky='E')
        beats_per_measure_entry = Entry(measure_control_frame, textvariable=self.beats_per_measure, width=3)
        beats_per_measure_entry.grid(row=1, column=1)

        change_measure_update = Button(measure_control_frame, text='Update Measure', command=self.change_measures)
        change_measure_update.grid(row=2, columnspan=2)

        # master_fader = mixer_frame.AudioFader(self, sequencer.getVolume, sequencer.setVolume)
        # master_fader.pack()

    def start_stop(self, event=None):
        if self.sequencer.running:
            self.sequencer.play()
        else:
            self.sequencer.stop()

    def change_measures(self):

        old_measure_resolution = self.sequencer.measure_resolution
        old_beats_per_measure = self.sequencer.beats_per_measure

        try:
            measure_resolution = int(self.measure_resolution.get())
            beats_per_measure = int(self.beats_per_measure.get())

            self.sequencer.change_measures(beats_per_measure, measure_resolution)
            print "ready to reload seq"
            self.master.master._open_sequencer(self.sequencer)
        except Exception as e:
            print e
            self.measure_resolution.set(old_measure_resolution)
            self.beats_per_measure.set(old_beats_per_measure)
            pass
コード例 #5
0
class Example(Frame):
  
    def __init__(self, parent):
        Frame.__init__(self, parent)   
         
        self.parent = parent
        
        self.initUI()
        
        
    def initUI(self):
   
      
        self.parent.title("Append Data")
        self.pack(fill=BOTH, expand=True)
        labelfont20 = ('Roboto', 15, 'bold')
        labelfont10 = ('Roboto', 10, 'bold')
        labelfont8 = ('Roboto', 8, 'bold')
        
        frame0 = Frame(self)
        frame0.pack()
        
        lbl0 = Label(frame0, text="Hi Nakul")
        lbl0.config(font=labelfont20)    
        lbl0.pack( padx=5, pady=5)
        lbl00 = Label(frame0, text="Fill the data here")
        lbl00.config(font=labelfont10)
        lbl00.pack( padx=5, pady=5)
        
        ####################################
        frame1 = Frame(self)
        frame1.pack()
        frame1.place(x=50, y=100)        
        
        lbl1 = Label(frame1, text="Name", width=15)
        lbl1.pack(side=LEFT,padx=7, pady=5) 
             
        self.entry1 = Entry(frame1,width=20)
        self.entry1.pack(padx=5, expand=True)
    
        ####################################
        frame2 = Frame(self)
        frame2.pack()
        frame2.place(x=50, y=130)
        
        lbl2 = Label(frame2, text="F Name", width=15)
        lbl2.pack(side=LEFT, padx=7, pady=5)

        self.entry2 = Entry(frame2)
        self.entry2.pack(fill=X, padx=5, expand=True)
        
        ######################################
        frame3 = Frame(self)
        frame3.pack()
        frame3.place(x=50, y=160)
        
        lbl3 = Label(frame3, text="DOB(D/M/Y)", width=15)
        lbl3.pack(side=LEFT, padx=7, pady=5)        

        self.entry3 = Entry(frame3)
        self.entry3.pack(fill=X, padx=5, expand=True) 
        
        #######################################
        frame4 = Frame(self)
        frame4.pack()
        frame4.place(x=50, y=190)
        
        lbl4 = Label(frame4, text="Medium(H/E)", width=15)
        lbl4.pack(side=LEFT, padx=7, pady=5)        

        self.entry4 = Entry(frame4)
        self.entry4.pack(fill=X, padx=5, expand=True)
        
        ##########################################
        frame5 = Frame(self)
        frame5.pack()
        frame5.place(x=50, y=225)  
        MODES = [
            ("M", "Male"),
            ("F", "Female"),
            ]
        lbl5 = Label(frame5, text="Gender", width=15)
        lbl5.pack(side=LEFT, padx=7, pady=5)

        global v
        v = StringVar()
        v.set("Male") # initialize

        for text, mode in MODES:
            b = Radiobutton(frame5, text=text,variable=v, value=mode)
            b.pack(side=LEFT,padx=10)
        
        ############################################
        #####printing line
        lbl5a = Label(text="___________________________________________________")
        lbl5a.pack()
        lbl5a.place(x=45, y=255)  
        
        ############################################
        frame6 = Frame(self)
        frame6.pack()
        frame6.place(x=50, y=290)
        
        lbl6 = Label(frame6, text="Phone No:", width=15)
        lbl6.pack(side=LEFT, padx=7, pady=5)        

        self.entry6 = Entry(frame6)
        self.entry6.pack(fill=X, padx=5, expand=True)
        
        ################################################
        
        frame7 = Frame(self)
        frame7.pack()
        frame7.place(x=50, y=320)
        
        lbl7 = Label(frame7, text="Landline No:", width=15)
        lbl7.pack(side=LEFT, padx=7, pady=5)        

        self.entry7 = Entry(frame7)
        self.entry7.pack(fill=X, padx=5, expand=True)
        
        ###############################################
        frame8 = Frame(self)
        frame8.pack()
        frame8.place(x=50, y=350)
        
        lbl8 = Label(frame8, text="Email:", width=15)
        lbl8.pack(side=LEFT, padx=7, pady=5)        

        self.entry8 = Entry(frame8)
        self.entry8.pack(fill=X, padx=5, expand=True)
        
        #############################################
        frame9 = Frame(self)
        frame9.pack()
        frame9.place(x=50, y=380)
        
        lbl9 = Label(frame9, text="HomeTown:", width=15)
        lbl9.pack(side=LEFT, padx=7, pady=5)        

        self.entry9 = Entry(frame9)
        self.entry9.pack(fill=X, padx=5, expand=True)
        
        ###############################################
        frame10 = Frame(self)
        frame10.pack()
        frame10.place(x=60, y=415)
        
        lbl10 = Label(frame10, text="Address:")
        lbl10.pack( padx=5, pady=5)        

        self.entry10 = Text(frame10,height=5, width=28)
        self.entry10.pack(padx=5, expand=True)
        
        ##############################################
        
        #############################################
        
        frame11 = Frame(self)
        frame11.pack()
        frame11.place(x=350, y=100)
        
        lbl11x = Label(frame11,text="_______Class 10th Data_______")
        lbl11x.pack(padx=0, pady=0)
        
        lbl11 = Label(text="%",width=15)
        lbl11.pack(side=LEFT,padx=0, pady=0)
        lbl11.place(x=350, y=130)        

        self.entry11 = Entry(width=12)
        self.entry11.pack(padx=1, expand=True)
        self.entry11.place(x=420, y=130) 
        
        lbl11a = Label(text="Passing Year",width=15)
        lbl11a.pack(padx=0, pady=2)   
        lbl11a.place(x=350, y=160)   

        self.entry11a = Entry(width=12)
        self.entry11a.pack(padx=1, expand=True)
        self.entry11a.place(x=420, y=160) 
        
        lbl11b = Label(text="Board Name",width=15)
        lbl11b.pack(padx=0, pady=2)   
        lbl11b.place(x=350, y=190)   

        self.entry11b = Entry(width=12)
        self.entry11b.pack(padx=1, expand=True)
        self.entry11b.place(x=420, y=190)
        
        
        ####################################################
        frame12 = Frame(self)
        frame12.pack()
        frame12.place(x=510, y=100)
        
        lbl12x = Label(frame12,text="_______Class 12th Data_______")
        lbl12x.pack(padx=0, pady=0)
        
        lbl12 = Label(text="%",width=15)
        lbl12.pack(side=LEFT,padx=0, pady=0)
        lbl12.place(x=510, y=130)        

        self.entry12 = Entry(width=12)
        self.entry12.pack(padx=1, expand=True)
        self.entry12.place(x=580, y=130) 
        
        lbl12a = Label(text="Passing Year",width=15)
        lbl12a.pack(padx=0, pady=2)   
        lbl12a.place(x=510, y=160)   

        self.entry12a = Entry(width=12)
        self.entry12a.pack(padx=1, expand=True)
        self.entry12a.place(x=580, y=160) 
        
        lbl12b = Label(text="Board Name",width=15)
        lbl12b.pack(padx=0, pady=2)   
        lbl12b.place(x=510, y=190)   

        self.entry12b = Entry(width=12)
        self.entry12b.pack(padx=1, expand=True)
        self.entry12b.place(x=580, y=190)

        #####################################################
        frame13 = Frame(self)
        frame13.pack()
        frame13.place(x=670, y=100)
        
        lbl13x = Label(frame13,text="________B.Tech Data_________")
        lbl13x.pack(padx=0, pady=0)
        
        lbl13 = Label(text="%",width=15)
        lbl13.pack(side=LEFT,padx=0, pady=0)
        lbl13.place(x=670, y=130)        

        self.entry13 = Entry(width=12)
        self.entry13.pack(padx=1, expand=True)
        self.entry13.place(x=740, y=130) 
        
        lbl13a = Label(text="Passing Year",width=15)
        lbl13a.pack(padx=0, pady=2)   
        lbl13a.place(x=670, y=160)   

        self.entry13a = Entry(width=12)
        self.entry13a.pack(padx=1, expand=True)
        self.entry13a.place(x=740, y=160) 
        
        lbl13b = Label(text="College",width=15)
        lbl13b.pack(padx=0, pady=2)   
        lbl13b.place(x=670, y=190)   

        self.entry13b = Entry(width=12)
        self.entry13b.pack(padx=1, expand=True)
        self.entry13b.place(x=740, y=190)
        
        ####################################################
        
        frame14 = Frame(self)
        frame14.pack()
        frame14.place(x=380, y=255)
        
        lbl14 = Label(frame14, text="Any Other Info:")
        lbl14.pack( padx=5, pady=5)        

        self.entry14 = Text(frame14,height=5, width=28)
        self.entry14.pack(padx=5, expand=True)
             
         
        
        frame15 = Frame(self)
        frame15.pack()
        frame15.place(x=650, y=290)
        
        openButton = Button(frame15, text="Attatch Resume",width=15,command=self.openResume)
        openButton.pack(padx=5, pady=5)
        self.entry15 = Entry(frame15)
        self.entry15.pack(fill=X, padx=4, expand=True)
        #############################################################
        frame16 = Frame(self)
        frame16.pack()
        frame16.place(x=450, y=500)
        
        closeButton = Button(frame16, text="SUBMIT",width=35,command=self.getDatax)
        closeButton.pack(padx=5, pady=5)
        
        #######################################
        framexxx = Frame(self)
        framexxx.pack()
        framexxx.place(x=700, y=600)
        self.xxx = Label(framexxx,text="Recent Changes Will Appear Here")
        self.xxx.config(font=labelfont8) 
        self.xxx.pack()
        
        #######################################
        
        frame000 = Frame(self)
        frame000.pack()
        frame000.place(x=50, y=600)
        
        self.lbl000= Label(frame000, text="Beta/Sample2.0 | (c) Nakul Rathore")
        self.lbl000.config(font=labelfont8)    
        self.lbl000.pack( padx=5, pady=5)
        
        
           

    def openResume(self):
        ftypes = [('All files', '*')]
        dlg = tkFileDialog.Open(self, filetypes = ftypes,initialdir='C:/Users/')
        global x15
        fl = dlg.show()
        #file name
        x15 = fl
        temp1 = os.path.basename(fl)
        global temp2
        temp2 = os.path.splitext(temp1)[0]
        
        self.entry15.delete(0, 'end')
        self.entry15.insert(0,temp2)
        
      
        
        
        
        #####################
        
        
        
        
        
    def getDatax(self):
        x1 = self.entry1.get()
        x2 = self.entry2.get()
        x3 = self.entry3.get()
        x4 = self.entry4.get()
        
        x5 = v.get()
        
        x6 = int(self.entry6.get())
        x7 = int(self.entry7.get())
        x8 = self.entry8.get()
        x9 = self.entry9.get()
        
        x10 = self.entry10.get('1.0', 'end')
        
        x11 = int(self.entry11.get())
        x11a = int(self.entry11a.get())
        x11b = self.entry11b.get()
        
        x12 = int(self.entry12.get())
        x12a = int(self.entry12a.get())
        x12b = self.entry12b.get()
        
        x13 = int(self.entry13.get())
        x13a = int(self.entry13a.get())
        x13b = self.entry13b.get()
        
        x14 = self.entry14.get('1.0', 'end')
        
        
        
        
        
        list1=[x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x11a,x11b,x12,x12a,x12b,x13,x13a,x13b,x14,"=HYPERLINK("+"\""+x15+"\""+","+"\""+temp2+"\""+")"]
        
        
        wb = openpyxl.load_workbook('..\database\database.xlsx')
        ws = wb.active
        print(wb.get_sheet_names())
        max_row = ws.get_highest_row()
        #max_col = ws.get_highest_column()
        max_col = 21
        print max_row
        
        for i in xrange(1,max_col+1):
            #print list1[i]
            ws.cell(row = max_row+1, column = i).value = list1[i-1]
        ws.cell(row = max_row+1, column = max_col).font = Font(color="0000FF", underline='single')
        ws.cell(row = max_row+1, column = max_col).alignment = Alignment(horizontal='center')
        wb.save('..\database\database.xlsx')
        
        
        self.entry1.delete(0, 'end')
        self.entry2.delete(0, 'end')
        self.entry3.delete(0, 'end')
        self.entry4.delete(0, 'end')
        
        self.entry6.delete(0, 'end')
        self.entry7.delete(0, 'end')
        self.entry8.delete(0, 'end')
        self.entry9.delete(0, 'end')
        self.entry10.delete('1.0', '2.0')
        self.entry11.delete(0, 'end')
        self.entry11a.delete(0, 'end')
        self.entry11b.delete(0, 'end')
        self.entry12.delete(0, 'end')
        self.entry12a.delete(0, 'end')
        self.entry12b.delete(0, 'end')
        self.entry13.delete(0, 'end')
        self.entry13a.delete(0, 'end')
        self.entry13b.delete(0, 'end')
        
        self.entry14.delete('1.0', '2.0')
        
        
        self.xxx.config(text="Recent Changes Made For : "+x1)
コード例 #6
0
    def initUI(self):
   
      
        self.parent.title("Append Data")
        self.pack(fill=BOTH, expand=True)
        labelfont20 = ('Roboto', 15, 'bold')
        labelfont10 = ('Roboto', 10, 'bold')
        labelfont8 = ('Roboto', 8, 'bold')
        
        frame0 = Frame(self)
        frame0.pack()
        
        lbl0 = Label(frame0, text="Hi Nakul")
        lbl0.config(font=labelfont20)    
        lbl0.pack( padx=5, pady=5)
        lbl00 = Label(frame0, text="Fill the data here")
        lbl00.config(font=labelfont10)
        lbl00.pack( padx=5, pady=5)
        
        ####################################
        frame1 = Frame(self)
        frame1.pack()
        frame1.place(x=50, y=100)        
        
        lbl1 = Label(frame1, text="Name", width=15)
        lbl1.pack(side=LEFT,padx=7, pady=5) 
             
        self.entry1 = Entry(frame1,width=20)
        self.entry1.pack(padx=5, expand=True)
    
        ####################################
        frame2 = Frame(self)
        frame2.pack()
        frame2.place(x=50, y=130)
        
        lbl2 = Label(frame2, text="F Name", width=15)
        lbl2.pack(side=LEFT, padx=7, pady=5)

        self.entry2 = Entry(frame2)
        self.entry2.pack(fill=X, padx=5, expand=True)
        
        ######################################
        frame3 = Frame(self)
        frame3.pack()
        frame3.place(x=50, y=160)
        
        lbl3 = Label(frame3, text="DOB(D/M/Y)", width=15)
        lbl3.pack(side=LEFT, padx=7, pady=5)        

        self.entry3 = Entry(frame3)
        self.entry3.pack(fill=X, padx=5, expand=True) 
        
        #######################################
        frame4 = Frame(self)
        frame4.pack()
        frame4.place(x=50, y=190)
        
        lbl4 = Label(frame4, text="Medium(H/E)", width=15)
        lbl4.pack(side=LEFT, padx=7, pady=5)        

        self.entry4 = Entry(frame4)
        self.entry4.pack(fill=X, padx=5, expand=True)
        
        ##########################################
        frame5 = Frame(self)
        frame5.pack()
        frame5.place(x=50, y=225)  
        MODES = [
            ("M", "Male"),
            ("F", "Female"),
            ]
        lbl5 = Label(frame5, text="Gender", width=15)
        lbl5.pack(side=LEFT, padx=7, pady=5)

        global v
        v = StringVar()
        v.set("Male") # initialize

        for text, mode in MODES:
            b = Radiobutton(frame5, text=text,variable=v, value=mode)
            b.pack(side=LEFT,padx=10)
        
        ############################################
        #####printing line
        lbl5a = Label(text="___________________________________________________")
        lbl5a.pack()
        lbl5a.place(x=45, y=255)  
        
        ############################################
        frame6 = Frame(self)
        frame6.pack()
        frame6.place(x=50, y=290)
        
        lbl6 = Label(frame6, text="Phone No:", width=15)
        lbl6.pack(side=LEFT, padx=7, pady=5)        

        self.entry6 = Entry(frame6)
        self.entry6.pack(fill=X, padx=5, expand=True)
        
        ################################################
        
        frame7 = Frame(self)
        frame7.pack()
        frame7.place(x=50, y=320)
        
        lbl7 = Label(frame7, text="Landline No:", width=15)
        lbl7.pack(side=LEFT, padx=7, pady=5)        

        self.entry7 = Entry(frame7)
        self.entry7.pack(fill=X, padx=5, expand=True)
        
        ###############################################
        frame8 = Frame(self)
        frame8.pack()
        frame8.place(x=50, y=350)
        
        lbl8 = Label(frame8, text="Email:", width=15)
        lbl8.pack(side=LEFT, padx=7, pady=5)        

        self.entry8 = Entry(frame8)
        self.entry8.pack(fill=X, padx=5, expand=True)
        
        #############################################
        frame9 = Frame(self)
        frame9.pack()
        frame9.place(x=50, y=380)
        
        lbl9 = Label(frame9, text="HomeTown:", width=15)
        lbl9.pack(side=LEFT, padx=7, pady=5)        

        self.entry9 = Entry(frame9)
        self.entry9.pack(fill=X, padx=5, expand=True)
        
        ###############################################
        frame10 = Frame(self)
        frame10.pack()
        frame10.place(x=60, y=415)
        
        lbl10 = Label(frame10, text="Address:")
        lbl10.pack( padx=5, pady=5)        

        self.entry10 = Text(frame10,height=5, width=28)
        self.entry10.pack(padx=5, expand=True)
        
        ##############################################
        
        #############################################
        
        frame11 = Frame(self)
        frame11.pack()
        frame11.place(x=350, y=100)
        
        lbl11x = Label(frame11,text="_______Class 10th Data_______")
        lbl11x.pack(padx=0, pady=0)
        
        lbl11 = Label(text="%",width=15)
        lbl11.pack(side=LEFT,padx=0, pady=0)
        lbl11.place(x=350, y=130)        

        self.entry11 = Entry(width=12)
        self.entry11.pack(padx=1, expand=True)
        self.entry11.place(x=420, y=130) 
        
        lbl11a = Label(text="Passing Year",width=15)
        lbl11a.pack(padx=0, pady=2)   
        lbl11a.place(x=350, y=160)   

        self.entry11a = Entry(width=12)
        self.entry11a.pack(padx=1, expand=True)
        self.entry11a.place(x=420, y=160) 
        
        lbl11b = Label(text="Board Name",width=15)
        lbl11b.pack(padx=0, pady=2)   
        lbl11b.place(x=350, y=190)   

        self.entry11b = Entry(width=12)
        self.entry11b.pack(padx=1, expand=True)
        self.entry11b.place(x=420, y=190)
        
        
        ####################################################
        frame12 = Frame(self)
        frame12.pack()
        frame12.place(x=510, y=100)
        
        lbl12x = Label(frame12,text="_______Class 12th Data_______")
        lbl12x.pack(padx=0, pady=0)
        
        lbl12 = Label(text="%",width=15)
        lbl12.pack(side=LEFT,padx=0, pady=0)
        lbl12.place(x=510, y=130)        

        self.entry12 = Entry(width=12)
        self.entry12.pack(padx=1, expand=True)
        self.entry12.place(x=580, y=130) 
        
        lbl12a = Label(text="Passing Year",width=15)
        lbl12a.pack(padx=0, pady=2)   
        lbl12a.place(x=510, y=160)   

        self.entry12a = Entry(width=12)
        self.entry12a.pack(padx=1, expand=True)
        self.entry12a.place(x=580, y=160) 
        
        lbl12b = Label(text="Board Name",width=15)
        lbl12b.pack(padx=0, pady=2)   
        lbl12b.place(x=510, y=190)   

        self.entry12b = Entry(width=12)
        self.entry12b.pack(padx=1, expand=True)
        self.entry12b.place(x=580, y=190)

        #####################################################
        frame13 = Frame(self)
        frame13.pack()
        frame13.place(x=670, y=100)
        
        lbl13x = Label(frame13,text="________B.Tech Data_________")
        lbl13x.pack(padx=0, pady=0)
        
        lbl13 = Label(text="%",width=15)
        lbl13.pack(side=LEFT,padx=0, pady=0)
        lbl13.place(x=670, y=130)        

        self.entry13 = Entry(width=12)
        self.entry13.pack(padx=1, expand=True)
        self.entry13.place(x=740, y=130) 
        
        lbl13a = Label(text="Passing Year",width=15)
        lbl13a.pack(padx=0, pady=2)   
        lbl13a.place(x=670, y=160)   

        self.entry13a = Entry(width=12)
        self.entry13a.pack(padx=1, expand=True)
        self.entry13a.place(x=740, y=160) 
        
        lbl13b = Label(text="College",width=15)
        lbl13b.pack(padx=0, pady=2)   
        lbl13b.place(x=670, y=190)   

        self.entry13b = Entry(width=12)
        self.entry13b.pack(padx=1, expand=True)
        self.entry13b.place(x=740, y=190)
        
        ####################################################
        
        frame14 = Frame(self)
        frame14.pack()
        frame14.place(x=380, y=255)
        
        lbl14 = Label(frame14, text="Any Other Info:")
        lbl14.pack( padx=5, pady=5)        

        self.entry14 = Text(frame14,height=5, width=28)
        self.entry14.pack(padx=5, expand=True)
             
         
        
        frame15 = Frame(self)
        frame15.pack()
        frame15.place(x=650, y=290)
        
        openButton = Button(frame15, text="Attatch Resume",width=15,command=self.openResume)
        openButton.pack(padx=5, pady=5)
        self.entry15 = Entry(frame15)
        self.entry15.pack(fill=X, padx=4, expand=True)
        #############################################################
        frame16 = Frame(self)
        frame16.pack()
        frame16.place(x=450, y=500)
        
        closeButton = Button(frame16, text="SUBMIT",width=35,command=self.getDatax)
        closeButton.pack(padx=5, pady=5)
        
        #######################################
        framexxx = Frame(self)
        framexxx.pack()
        framexxx.place(x=700, y=600)
        self.xxx = Label(framexxx,text="Recent Changes Will Appear Here")
        self.xxx.config(font=labelfont8) 
        self.xxx.pack()
        
        #######################################
        
        frame000 = Frame(self)
        frame000.pack()
        frame000.place(x=50, y=600)
        
        self.lbl000= Label(frame000, text="Beta/Sample2.0 | (c) Nakul Rathore")
        self.lbl000.config(font=labelfont8)    
        self.lbl000.pack( padx=5, pady=5)
コード例 #7
0
ファイル: AppendCSV.py プロジェクト: nakulrathore/CSV_Play
class Example(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent)

        self.parent = parent

        self.initUI()

    def initUI(self):

        self.parent.title("Review")
        self.pack(fill=BOTH, expand=True)
        labelfont20 = ('Roboto', 20, 'bold')
        labelfont12 = ('Roboto', 12, 'bold')

        frame0 = Frame(self)
        frame0.pack()

        lbl0 = Label(frame0, text="Hi USER")
        lbl0.config(font=labelfont20)
        lbl0.pack(padx=5, pady=5)
        lbl00 = Label(frame0, text="Fill the data here")
        lbl00.config(font=labelfont12)
        lbl00.pack(padx=5, pady=5)

        frame1 = Frame(self)
        frame1.pack()

        lbl1 = Label(frame1, text="Name", width=15)
        lbl1.pack(side=LEFT, padx=7, pady=5)

        self.entry1 = Entry(frame1, width=20)
        self.entry1.pack(padx=5, expand=True)

        frame2 = Frame(self)
        frame2.pack()

        lbl2 = Label(frame2, text="Branch", width=15)
        lbl2.pack(side=LEFT, padx=7, pady=5)

        self.entry2 = Entry(frame2)
        self.entry2.pack(fill=X, padx=5, expand=True)

        frame3 = Frame(self)
        frame3.pack()

        lbl3 = Label(frame3, text="Percent", width=15)
        lbl3.pack(side=LEFT, padx=7, pady=5)

        self.entry3 = Entry(frame3)
        self.entry3.pack(fill=X, padx=5, expand=True)

        frame4 = Frame(self)
        frame4.pack()

        lbl4 = Label(frame4, text="Placed(Yes/No)", width=15)
        lbl4.pack(side=LEFT, padx=7, pady=5)

        self.entry4 = Entry(frame4)
        self.entry4.pack(fill=X, padx=5, expand=True)

        frame5 = Frame(self)
        frame5.pack()

        lbl5 = Label(frame5, text="Resume_File", width=15)
        lbl5.pack(side=LEFT, padx=7, pady=5)

        self.entry5 = Entry(frame5)
        self.entry5.pack(fill=X, padx=5, expand=True)

        frame6 = Frame(self)
        frame6.pack()
        closeButton = Button(frame6,
                             text="SUBMIT",
                             width=15,
                             command=self.getDate)
        closeButton.pack(padx=5, pady=5)

        frame000 = Frame(self)
        frame000.pack()

        self.lbl000 = Label(frame000, text="Enter the data and click SUBMIT")
        self.lbl000.config(font=labelfont12)
        self.lbl000.pack(padx=5, pady=5)

    def getDate(self):
        x1 = self.entry1.get()
        x2 = self.entry2.get()
        x3 = self.entry3.get()
        x4 = self.entry4.get()
        x5 = self.entry5.get()

        list1 = [x1, x2, x3, x4, "=HYPERLINK(" + "\"" + x5 + "\"" + ")"]
        self.entry1.delete(0, 'end')
        self.entry2.delete(0, 'end')
        self.entry3.delete(0, 'end')
        self.entry4.delete(0, 'end')
        self.entry5.delete(0, 'end')
        self.lbl000.config(text="YO")

        with open("test.csv", "ab") as fp:
            wr = csv.writer(fp, dialect='excel')
            wr.writerow(list1)
        fp.close()
コード例 #8
0
ファイル: main.py プロジェクト: MaroGM/gendersonification
class Page(Frame):
	def __init__(self, parent, index=0):
		Frame.__init__(self, parent, height=530, relief=RAISED, borderwidth=1)
		self.parent = parent
		if index == 0:
			self.loadScriptPage()
		elif index == 1:
			self.scriptProcessPage()
		elif index == 2:
			self.sonifyProcessPage()
		elif index == 3:
			self.finishedPage()
		else:
			print "No Page here!"

		
	def loadScriptPage(self):
		
		# Button States
		self.parent.prevButton.config(state='disabled')
		if self.parent.scriptname != '':
			self.parent.nextButton.config(state='normal')

		explain = Label(self, text=txt.selectscript, justify=CENTER, font=root.fontH1)
		explain.pack(pady=50)

		self.loadedscript = Label(self, text=self.parent.scriptname, justify=CENTER, font=root.fontH1)
		self.loadedscript.pack()

		loadscriptBtn = Button(self, text="Load Script", command=self.getScript)
		loadscriptBtn.pack(pady=10)

	def scriptProcessPage(self):
		self.parent.prevButton.config(state='normal')
		self.parent.nextButton.config(state='normal')

		explain = Label(self, text="Character Selection", justify=CENTER, font=root.fontH1)
		explain.grid(row=0, columnspan=3, pady=20)

		# Instance Script
		self.parent.Script = ScreenPlay(normpath(self.parent.scriptpath))

		actorNames = self.parent.Script.topcharacters
		self.actorActive = []
		self.actorGender = []

		for i in range(6):
			Label(self, text=actorNames[i], width=20).grid(row=i+1, padx=10, pady=8)
			participateFrame = Frame(self ,relief=RAISED, borderwidth=1)
			participateFrame.grid(row=i+1,column=1, padx=10, ipady=2, ipadx=5)
			
			participate = BooleanVar()
			self.actorActive.append(participate)
			self.actorActive[i].set(True)

			Radiobutton(participateFrame, text="ON", variable=self.actorActive[i], value=True, command=self.updateVars).pack(side=LEFT)
			Radiobutton(participateFrame, text="OFF",  variable=self.actorActive[i], value=False, command=self.updateVars).pack(side=LEFT)

			genderFrame = Frame(self, relief=RAISED, borderwidth=1)
			genderFrame.grid(row=i+1,column=2, padx=30, ipady=2)
			
			gender = StringVar()
			self.actorGender.append(gender)
			self.actorGender[i].set('F')

			Label(genderFrame, text="Gender:").pack(side=LEFT, padx=10)

			Radiobutton(genderFrame, text="Female", variable=self.actorGender[i], value='F', command=self.updateVars).pack(side=LEFT, padx=5)
			Radiobutton(genderFrame, text="Male",  variable=self.actorGender[i], value='M', command=self.updateVars).pack(side=LEFT, padx=5)

		Label(self, text="______________________", justify=CENTER, state='disabled').grid(row=8, columnspan=3, pady=10)
		Label(self, text="Sonification Settings", justify=CENTER, font=root.fontH1).grid(row=9, columnspan=3, pady=10)

		sonificationFrame = Frame(self)
		sonificationFrame.grid(row=10, columnspan=3)

		Label(sonificationFrame, text="Tone Length", width=22).grid(row=0, column=0)
		self.tonelen = Combobox(sonificationFrame, state='readonly', values=['1/1','1/2','1/4', '1/8'])
		self.tonelen.bind("<<ComboboxSelected>>", self.updateCombobox)
		self.tonelen.current(1)
		self.tonelen.grid(row=0, column=1, padx=10, pady=5)

		Label(sonificationFrame, text="Sonification BPM", width=22).grid(row=1, column=0)
		self.bpm = Combobox(sonificationFrame, state='readonly', values=[100, 120, 140, 160, 180, 200, 220, 240, 260])
		self.bpm.bind("<<ComboboxSelected>>", self.updateCombobox)
		self.bpm.current(4)
		self.bpm.grid(row=1, column=1, padx=10, pady=5)

		Label(sonificationFrame, text="Dialogue Length per Tone", justify=LEFT).grid(row=2, column=0)
		self.dpt = Combobox(sonificationFrame, state='readonly', values=[1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 5500, 6000])
		self.dpt.bind("<<ComboboxSelected>>", self.updateCombobox)
		self.dpt.current(4)
		self.dpt.grid(row=2, column=1, padx=10, pady=5)

		self.submitSettings()

	def submitSettings(self):
		actorSelections = []
		sonifySettings = []

		for i in range(6):
			selected = self.actorActive[i].get()
			gender = self.actorGender[i].get()

			actorSelections.append( [selected , gender ] )

		sonifySettings.append(self.tonelen.get())
		sonifySettings.append(self.bpm.get())
		sonifySettings.append(self.dpt.get())

		self.parent.actorSelections = actorSelections
		self.parent.sonifySettings = sonifySettings
		# print actorSelections
		# print sonifySettings

	def finishedPage(self):
		Label(self, text="Sonification Complete!", justify=CENTER, font=root.fontH1).pack(pady=200)



	def sonifyProcessPage(self):

		Label(self, text="Processing", justify=CENTER, font=root.fontH1).pack(pady=20)

		self.processing = Label(self, text="", justify=CENTER)
		self.processing.pack(pady=20)

		self.pbar = Progressbar(self, orient='horizontal', mode='indeterminate')
		self.pbar.start(10)
		self.pbar.pack()

		self.after(100, self.sonifyProcess)


	def sonifyProcess(self):
		# Create Output Directory
		path = dirname(normpath(self.parent.scriptpath))

		self.outdir = join(path, 'output_' + str(self.parent.movietitle))

		self.tempdir = join(self.outdir, 'temp')
		self.tempdir = join(self.tempdir, '')

		if not isdir(self.tempdir):
			makedirs(self.tempdir)

		notelen = self.parent.sonifySettings[0]
		notelen = int( notelen[-1:] )
		bpm = int( self.parent.sonifySettings[1] )
		cutoff = int( self.parent.sonifySettings[2] )

		# Create dictionary based on settings
		self.parent.Script.createSceneDictionary(cutoff=cutoff)
		sceneAmount = len(self.parent.Script.scenedictionary)

		for index, character in enumerate(self.parent.Script.topcharacters):
			selected = self.parent.actorSelections[index][0]
			gender = self.parent.actorSelections[index][1]

			if selected:
				charSong = Sonification(character, gender, index)

				for scene in range(sceneAmount-1):

					if character in self.parent.Script.sceneComposition(scene):
						textamount = self.parent.Script.sceneComposition(scene)[character]
						participation = ( float(textamount) / float(cutoff) ) * 100
					else:
						participation = None

					self.processing.config(text= 'Creating Audio for ' + character.title())
					self.update()
					charSong.songBrick(participation, length=notelen)

				charSong.make_song(self.update, bpm=bpm, path=self.tempdir)

		self.mergeAudiotracks()
		

	def mergeAudiotracks(self):

		self.processing.config(text='Creating Multichannel Audiofile\nThis can take a while!')
		self.update()

		outfile = join(self.outdir, 'output.wav')
		
		filearray = []

		for index, character in enumerate(self.parent.Script.topcharacters):
			filename = character.lower() + str(index) + '.wav'
			filearray.append( join(self.tempdir, filename) )

		amix.mix_audiofiles(filearray, outfile, self.update)

		self.parent.nextPage()



	def getScript(self):
		scriptpath = askopenfilename(parent=self.parent, filetypes=[('Fountain Script File','.fountain')], title='Select Script')
		self.parent.scriptpath = scriptpath
		self.parent.scriptname = basename(self.parent.scriptpath)
		self.parent.movietitle = splitext(self.parent.scriptname)[0]

		self.loadedscript.config(text=self.parent.scriptname)
		self.parent.nextButton.config(state='normal')


	def updateVars(self):
		self.submitSettings()

	def updateCombobox(self, event):
		self.submitSettings()
コード例 #9
0
class GripperDemo(Frame):
    def __init__(self, parent1):
        Frame.__init__(self, parent1)
        self.parent = parent1
        self.initUI()

    def initUI(self):
        self.parent.title("Gripper Demo")
        self.style = Style()
        self.style.theme_use("default")
        self.pack(fill=BOTH, expand=1)

        #scale1 - Gripper Pos
        ScaleGripperPos = Scale(self,
                                from_=0,
                                to=100,
                                orient=HORIZONTAL,
                                length=300,
                                resolution=1,
                                command=self.onScaleGripperPos)
        ScaleGripperPos.grid(row=1, column=2)

        self.label = Label(self, text="Gripper Pos ")
        self.label.grid(row=1, column=1)

        self.GripperPos = IntVar()
        self.labelScaleGripperPos = Label(self,
                                          text=0,
                                          textvariable=self.GripperPos)
        self.labelScaleGripperPos.grid(row=1, column=3)

        #scale2 - X ROTATION
        scaleRotX = Scale(self,
                          from_=0,
                          to=650,
                          orient=HORIZONTAL,
                          length=300,
                          resolution=1,
                          command=self.onScaleXAxisRot)
        scaleRotX.grid(row=2, column=2)
        scaleRotX.set(450)

        self.label = Label(self, text="X Axis Rotation ")
        self.label.grid(row=2, column=1)

        self.labelRotX = Label(self)
        self.labelRotX.grid(row=2, column=3)

        #Entry1 - Force
        self.entryForce = Entry(self)
        self.entryForce.grid(row=3, column=2)
        self.entryForce.insert(0, "50")  #35=700

        #self.forceString = StringVar()
        #self.forceString.set(1023);
        self.labelForce = Label(self)
        self.labelForce.grid(row=3, column=3)
        #self.entryForce.insert(1023,self.force.get())
        #self.entry1.delete(0,END) #delete entry text
        #entry.bind("<Return>", callback) #calls callback function after hit "enter"

        self.label = Label(self, text="Current (A)")
        self.label.grid(row=6, column=1)
        self.labelCurrent = Label(self)
        self.labelCurrent.grid(row=6, column=3)

        #Entry2 - Speed
        self.entrySpeed = Entry(self)
        self.entrySpeed.grid(row=4, column=2)
        self.entrySpeed.insert(0, "4000")
        self.labelSpeed = Label(self)
        self.labelSpeed.grid(row=4, column=3)

        #Entry2 - Active Distance
        self.entryDistance = Entry(self)
        self.entryDistance.grid(row=5, column=2)

        #Entry3 - Send Command
        self.entrySendCommand = Entry(self)
        self.entrySendCommand.grid(row=8, column=2)

        self.activeDistance = IntVar()
        self.activeDistance.set(15)
        self.labelActiveDistance = Label(self)
        self.labelActiveDistance.grid(row=5, column=3)
        self.entryDistance.insert(0, self.activeDistance.get())

        #Button1 - close
        self.button1 = Button(self, text="close", command=self.gripperClose)
        self.button1.grid(row=7, column=1)
        #Button2 - open
        self.button2 = Button(self, text="open", command=self.gripperOpen)
        self.button2.grid(row=7, column=2)
        #Button3 - home
        self.button3 = Button(self,
                              text="home",
                              command=self.gripperHomeRoutine)
        self.button3.grid(row=7, column=3)
        #Button4 - send command
        self.button4 = Button(self, text="send", command=self.sendCommand)
        self.button4.grid(row=8, column=3)
        #Button3
        self.buttonForce = Button(self,
                                  text="forceSetPoint (mg)",
                                  command=self.gripperSetForce)
        self.buttonForce.grid(row=3, column=1)
        #Button4
        self.buttonSpeed = Button(self,
                                  text="speedSetPoint (mseg/close)",
                                  command=self.gripperSetSpeed)
        #80degree each finger = to move 40 degree to close
        self.buttonSpeed.grid(row=4, column=1)
        #Button5
        self.buttonDistance = Button(self,
                                     text="distanceSetPoint (Cm)",
                                     command=self.gripperSetDistance)
        self.buttonDistance.grid(row=5, column=1)

    def gripperOpen(self):
        message = "open"
        rospy.loginfo(message)
        pub.publish(message)

    def gripperClose(self):
        message = "close_101"  #101 is the auto close command
        rospy.loginfo(message)
        pub.publish(message)

    def gripperHomeRoutine(self):
        message = "home"
        rospy.loginfo(message)
        pub.publish(message)

    def sendCommand(self):
        message = self.entrySendCommand.get()
        rospy.loginfo(message)
        pub.publish(message)

    def gripperSetForce(self):
        aux = map(int(self.entryForce.get()), 0, 1200, 0, 1023)
        message = "setForce_" + str(aux)
        rospy.loginfo(message)
        pub.publish(message)

    def gripperSetSpeed(self):
        #0.174seg 80graus (6.0V sem carga)
        #4s 80 graus na velocidade minima 50ms
        aux = map(int(self.entrySpeed.get()), 4000, 174, 50, 0)
        if aux < 0:
            aux = 0
        message = "setSpeed_" + str(aux)
        rospy.loginfo(message)
        pub.publish(message)

    def gripperSetDistance(self):
        aux = self.entryDistance.get()
        message = "setDistance_" + str(aux)
        rospy.loginfo(message)
        pub.publish(message)

    def onScaleGripperPos(self, x):
        aux = int(float(x))
        self.GripperPos.set(aux)
        message = "close_" + str(aux)
        rospy.loginfo(message)
        pub.publish(message)

    def onScaleXAxisRot(self, x):
        aux = int(float(x))
        message = "rotate_" + str(aux)
        rospy.loginfo(message)
        pub.publish(message)

    def updateLabels(self):
        aux = map(gripperForce.data, 0, 1023, 0, 1200)
        self.labelForce.config(text=str(aux))
        aux = int(self.entrySpeed.get())
        if aux < 174:
            aux = 174
        self.labelSpeed.config(text=str(aux))
        self.labelActiveDistance.config(text=str(gripperDistance.data))
        self.labelRotX.config(text=str(gripperRotationX.data))
        self.labelCurrent.config(text=str((gripperCurrent.data - 511) * 0.024))
コード例 #10
0
class CHEWD(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent)
        self.parent = parent
        self.initUI()
        self.selection = ""
        self.pdb = ""

    def initUI(self):
        self.parent.title("CHemical Energy Wise Decomposition")
        frame4 = Frame(self.parent)
        frame4.grid(row=0, column=0, sticky="nsew")
        self.wat = IntVar()
        self.wat.set(1)
        self.waterswap = Checkbutton(frame4,
                                     text="Water Swap",
                                     command=self.optionws,
                                     variable=self.wat)
        self.waterswap.grid(row=0, column=0)
        self.lig = IntVar()
        self.lig.set(0)
        self.ligandswap = Checkbutton(frame4,
                                      text="Ligand Swap",
                                      command=self.optionls,
                                      variable=self.lig)
        self.ligandswap.grid(row=0, column=1)
        self.mm = IntVar()
        self.mm.set(0)
        self.mmpbsa = Checkbutton(frame4,
                                  text="MMPBSA",
                                  command=self.optionmm,
                                  variable=self.mm)
        self.mmpbsa.grid(row=0, column=2)

        frame1 = Frame(self.parent)
        frame1.grid(row=1, column=0, sticky="nsew")
        lbl1 = Label(frame1, text="Log file folder", width=12)
        lbl1.grid(row=0, column=0)
        self.entry1 = Entry(frame1)
        self.entry1.grid(row=0, column=1, columnspan=4, sticky=W + E)
        self.browserButton = Button(frame1,
                                    text="Browser",
                                    command=self.onOpen)
        self.browserButton.grid(row=0, column=5, sticky="e")

        lbl2 = Label(frame1, text="MMPBSA log file", width=12)
        lbl2.grid(row=1, column=0)
        self.entry2 = Entry(frame1, state=DISABLED)
        self.entry2.grid(row=1, column=1, columnspan=4, sticky=W + E)
        self.browserButtonMM = Button(frame1,
                                      text="Browser",
                                      command=self.onOpenMM,
                                      state=DISABLED)
        self.browserButtonMM.grid(row=1, column=5, sticky="e")

        lbl3 = Label(frame1, text="MMPBSA PDB file", width=12)
        lbl3.grid(row=2, column=0)
        self.entry3 = Entry(frame1, state=DISABLED)
        self.entry3.grid(row=2, column=1, columnspan=4, sticky=W + E)
        self.browserButtonPDB = Button(frame1,
                                       text="Browser",
                                       command=self.onOpenPDB,
                                       state=DISABLED)
        self.browserButtonPDB.grid(row=2, column=5, sticky="e")

        lbl4 = Label(frame1, text="Ligand Name", width=12)
        lbl4.grid(row=3, column=0)
        self.entry4 = Entry(frame1)
        self.entry4.grid(row=3, column=1)
        self.lblswap = Label(frame1,
                             text="Swap Ligand",
                             width=12,
                             state=DISABLED)
        self.lblswap.grid(row=3, column=2)
        self.swapentry = Entry(frame1, state=DISABLED)
        self.swapentry.grid(row=3, column=3)
        self.l1v = IntVar()
        self.l1v.set(1)
        self.lig1ck = Checkbutton(frame1,
                                  text="Ligand 1",
                                  command=self.changelig1,
                                  state=DISABLED,
                                  variable=self.l1v)
        self.lig1ck.grid(row=4, column=0)
        self.l2v = IntVar()
        self.l2v.set(0)
        self.lig2ck = Checkbutton(frame1,
                                  text="Ligand 2",
                                  command=self.changelig2,
                                  state=DISABLED,
                                  variable=self.l2v)
        self.lig2ck.grid(row=4, column=2)
        lbl5 = Label(frame1, text="Display Radius", width=12)
        lbl5.grid(row=5, column=0)
        self.entry5 = Entry(frame1)
        self.entry5.grid(row=5, column=1)
        self.entry5.insert(0, "5.0")
        self.sv = IntVar()
        self.sv.set(0)
        self.surface = Checkbutton(frame1,
                                   text="View Surface",
                                   command=self.viewsurface,
                                   variable=self.sv)
        self.surface.grid(row=5, column=2)
        self.vl = IntVar()
        self.vl.set(1)
        self.label = Checkbutton(frame1,
                                 text="View Label",
                                 command=self.viewlabel,
                                 variable=self.vl)
        self.label.grid(row=5, column=3)

        lbl6 = Label(frame1, text="Min Value", width=12)
        lbl6.grid(row=6, column=0)
        self.entry6 = Entry(frame1)
        self.entry6.grid(row=6, column=1)
        self.entry6.insert(0, "-5")
        lbl7 = Label(frame1, text="Max Value", width=12)
        lbl7.grid(row=6, column=2)
        self.entry7 = Entry(frame1)
        self.entry7.grid(row=6, column=3)
        self.entry7.insert(0, "+5")

        lbl8 = Label(frame1, text="Starting log file", width=12)
        lbl8.grid(row=7, column=0)
        self.entry8 = Entry(frame1)
        self.entry8.grid(row=7, column=1)
        self.entry8.insert(0, "400")
        lbl9 = Label(frame1, text="Ending log file", width=12)
        lbl9.grid(row=7, column=2)
        self.entry9 = Entry(frame1)
        self.entry9.grid(row=7, column=3)
        self.entry9.insert(0, "1000")

        frame2 = Frame(self.parent)
        frame2.grid(row=2, column=0, sticky="nsew")
        self.vsb = Scrollbar(frame2, orient="vertical", command=self.OnVsb)
        self.vsb.grid(row=1, column=3, sticky="ns")
        self.lb1 = Listbox(frame2, yscrollcommand=self.vsb.set)
        self.lb1.grid(row=1, column=0)
        self.lb2 = Listbox(frame2, yscrollcommand=self.vsb.set)
        self.lb2.grid(row=1, column=1)
        self.lb3 = Listbox(frame2, yscrollcommand=self.vsb.set)
        self.lb3.grid(row=1, column=2)

        self.b1 = Button(frame2,
                         text="Residue Number",
                         state=DISABLED,
                         command=lambda: self.sortdata(0))
        self.b1.grid(row=0, column=0, sticky=W + E)
        self.b2 = Button(frame2,
                         text="Residue Name",
                         state=DISABLED,
                         command=lambda: self.sortdata(1))
        self.b2.grid(row=0, column=1, sticky=W + E)
        self.b3 = Button(frame2,
                         text="Energy Value",
                         state=DISABLED,
                         command=lambda: self.sortdata(2))
        self.b3.grid(row=0, column=2, sticky=W + E)

        OS = platform.system()
        if (OS == "Linux"):
            self.lb1.bind("<<ListboxSelect>>", self.OnSelect)
            self.lb1.bind("<4>", self.OnMouseWheel)
            self.lb1.bind("<5>", self.OnMouseWheel)
            self.lb2.bind("<<ListboxSelect>>", self.OnSelect)
            self.lb2.bind("<4>", self.OnMouseWheel)
            self.lb2.bind("<5>", self.OnMouseWheel)
            self.lb3.bind("<<ListboxSelect>>", self.OnSelect)
            self.lb3.bind("<4>", self.OnMouseWheel)
            self.lb3.bind("<5>", self.OnMouseWheel)
        else:
            self.lb1.bind("<<ListboxSelect>>", self.OnSelect)
            self.lb1.bind("<MouseWheel>", self.OnMouseWheel)
            self.lb2.bind("<<ListboxSelect>>", self.OnSelect)
            self.lb2.bind("<MouseWheel>", self.OnMouseWheel)
            self.lb3.bind("<<ListboxSelect>>", self.OnSelect)
            self.lb3.bind("<MouseWheel>", self.OnMouseWheel)

        frame3 = Frame(self.parent)
        frame3.grid(row=3, column=0, sticky="nsew")

        self.previous = Button(frame3,
                               text="Previous Frame",
                               state=DISABLED,
                               command=self.prevframe)
        self.previous.grid(row=0, column=0, sticky=W + E)
        self.scale = Scale(frame3,
                           command=self.onScale,
                           state=DISABLED,
                           orient=HORIZONTAL,
                           length=320,
                           showvalue=0)
        self.scale.grid(row=0, column=1, sticky=W + E)
        self.next = Button(frame3,
                           text="Next Frame",
                           state=DISABLED,
                           command=self.nextframe)
        self.next.grid(row=0, column=2, sticky=W + E)

        self.var = IntVar()
        v = 000
        self.var.set(v)
        self.label = Label(frame3, text=0, textvariable=self.var)
        self.label.grid(row=0, column=3)
        self.ApplyButton = Button(frame3, text="Apply", command=self.Apply)
        self.ApplyButton.grid(row=1, column=3, sticky="e")

        ToolTip(lbl1, "Load the result directory of Sire Analysis")
        ToolTip(self.browserButton,
                "Load the result directory of Sire Analysis")
        ToolTip(lbl4, "Enter the name of the Ligand in your coordinate file")
        ToolTip(
            lbl5,
            "The radially distributed zone around ligand you want to be displayed"
        )
        ToolTip(
            lbl6,
            "Minimum scale value for the color distribution and it will be treated as blue"
        )
        ToolTip(
            lbl7,
            "Maximum scale value for the color distribution and it will be treated as red"
        )

    def wsvisualizer(self, index, lig, zone, min, max, label):
        cmd.hide("all")
        x = cmd.get_names("all")
        cmd.show("cartoon", "bo. " + x[index])
        cmd.show("sticks", x[index] + " and r. " + lig)
        cmd.color("white", x[index] + " and pol.")
        fp = open(tempfile.gettempdir() + "/temp.txt", "r")
        #tt=0
        stored.bfact = []
        for line in fp:
            stored.bfact.append(line)
            #print(stored.bfact[tt]+"\t"+line+"\t"+str(tt))
            #tt=tt+1
        #print(tt)
        fp.close()
        cmd.alter(x[index], "b=stored.bfact.pop(0)")
        cmd.spectrum("b", "blue_white_red", x[index], minimum=min, maximum=max)
        cmd.ramp_new("ramp_obj",
                     x[index],
                     range=[min, 0, max],
                     color="[blue, white, red ]")
        cmd.util.cbaw(x[index] + " and r. " + lig)
        cmd.show(
            "licorice", "( " + x[index] + " and (r. " + lig + " a. " + zone +
            ") ) and (not (" + x[index] +
            " and (r. SWT or r. BWT or r. SWP))) ")
        self.togglelabelws(label, index, lig, zone)

    def lsvisualizer(self, index, lig, zone, min, max, hlig, label):
        cmd.hide("all")
        x = cmd.get_names("all")
        cmd.show("cartoon", "bo. " + x[index])
        cmd.show("sticks", x[index] + " and r. " + lig)
        cmd.color("white", x[index] + " and pol.")
        fp = open(tempfile.gettempdir() + "/temp.txt", "r")
        stored.bfact = []
        for line in fp:
            stored.bfact.append(line)
        fp.close()
        cmd.alter(x[index], "b=stored.bfact.pop(0)")
        cmd.spectrum("b", "blue_white_red", x[index], minimum=min, maximum=max)
        cmd.ramp_new("ramp_obj",
                     x[index],
                     range=[min, 0, max],
                     color="[blue, white, red ]")
        cmd.util.cbaw(x[index] + " and r. " + lig)
        cmd.show(
            "licorice", "( " + x[index] + " and (r. " + lig + " a. " + zone +
            ") ) and (not (" + x[index] +
            " and (r. SWT or r. BWT or r. SWP))) ")
        cmd.hide("licorice", x[index] + " and r. " + hlig)
        self.togglelabells(label, index, lig, zone, hlig)

    def wsupdateview(self, lig, zone, min, max, prev, index, label):
        cmd.hide("all")
        x = cmd.get_names("all")
        cmd.label(
            "( " + x[index] + " and (r. " + lig + " a. " + prev +
            ") ) and (not (" + x[index] +
            " and (r. SWT or r. BWT or r. SWP))) " + " and name CA", "\" \"")
        cmd.show("cartoon", "bo. " + x[index])
        cmd.show("sticks", x[index] + " and r. " + lig)
        cmd.color("white", x[index] + " and pol.")
        fp = open(tempfile.gettempdir() + "/temp.txt", "r")
        #tt=0
        stored.bfact = []
        for line in fp:
            stored.bfact.append(line)
            #print(stored.bfact[tt]+"\t"+line+"\t"+str(tt))
            #tt=tt+1
        #print(tt)
        fp.close()
        cmd.alter(x[index], "b=stored.bfact.pop(0)")
        cmd.spectrum("b", "blue_white_red", x[index], minimum=min, maximum=max)
        cmd.ramp_new("ramp_obj",
                     x[index],
                     range=[min, 0, max],
                     color="[blue, white, red ]")
        cmd.util.cbaw(x[index] + " and r. " + lig)
        cmd.show(
            "licorice", "( " + x[index] + " and (r. " + lig + " a. " + zone +
            ") ) and (not (" + x[index] +
            " and (r. SWT or r. BWT or r. SWP))) ")
        self.togglelabelws(label, index, lig, zone)

    def lsupdateview(self, lig, zone, min, max, prev, index, hlig, label):
        cmd.hide("all")
        x = cmd.get_names("all")
        cmd.label(
            "( " + x[index] + " and (r. " + lig + " a. " + prev +
            ") ) and (not (" + x[index] +
            " and (r. SWT or r. BWT or r. SWP))) " + " and name CA", "\" \"")
        cmd.show("cartoon", "bo. " + x[index])
        cmd.show("sticks", x[index] + " and r. " + lig)
        cmd.color("white", x[index] + " and pol.")
        fp = open(tempfile.gettempdir() + "/temp.txt", "r")

        stored.bfact = []
        for line in fp:
            stored.bfact.append(line)

        fp.close()
        cmd.alter(x[index], "b=stored.bfact.pop(0)")
        cmd.spectrum("b", "blue_white_red", x[index], minimum=min, maximum=max)
        cmd.ramp_new("ramp_obj",
                     x[index],
                     range=[min, 0, max],
                     color="[blue, white, red ]")
        cmd.util.cbaw(x[index] + " and r. " + lig)
        cmd.show(
            "licorice", "( " + x[index] + " and (r. " + lig + " a. " + zone +
            ") ) and (not (" + x[index] +
            " and (r. SWT or r. BWT or r. SWP))) ")
        cmd.hide("licorice", x[index] + " and r. " + hlig)
        self.togglelabells(label, index, lig, zone, hlig)

    def wsloadallpdb(self, pdblist, path):
        for x in pdblist:
            cmd.load(path + "/" + x)
            #print(path +"/"+ x)
        cmd.hide("all")

    def mmloadpdb(self, path):
        cmd.load(path)

    def togglesurface(self, sur):
        x = cmd.get_names("all")
        if (sur):
            cmd.show("surf", x[int(self.scale.get())])
            cmd.set("transparency", "0.7")
        else:
            cmd.hide("surf", x[int(self.scale.get())])

    def wslistdisplay(self, prev, cur, index):
        x = cmd.get_names("all")
        cmd.hide("sticks", x[index] + " and i. " + prev)
        cmd.label(x[index] + " and i. " + prev + " and name CA", "\" \"")
        cmd.show("sticks", x[index] + " and i. " + cur)
        cmd.label(x[index] + " and i. " + cur + " and name CA",
                  "\"%s %s\"%(resn,resi)")

    def togglelabelws(self, label, index, lig, zone):
        global prevz
        x = cmd.get_names("all")
        if (label):
            cmd.label(
                "( " + x[index] + " and (r. " + lig + " a. " + zone +
                ") ) and (not (" + x[index] +
                " and (r. SWT or r. BWT or r. SWP))) " + " and name CA",
                "\"%s %s\"%(resn,resi)")
            prevz = self.entry5.get()
        else:
            cmd.label(
                "( " + x[index] + " and (r. " + lig + " a. " + prevz +
                ") ) and (not (" + x[index] +
                " and (r. SWT or r. BWT or r. SWP))) " + " and name CA",
                "\" \"")

    def togglelabells(self, label, index, lig, zone, hlig):
        global prevz
        x = cmd.get_names("all")
        if (label):
            cmd.label(
                "( " + x[index] + " and (r. " + lig + " a. " + zone +
                ") ) and (not (" + x[index] +
                " and (r. SWT or r. BWT or r. SWP))) " + " and name CA",
                "\"%s %s\"%(resn,resi)")
            cmd.label(x[index] + " and r. " + hlig + " and name CA", "\" \"")
            prevz = self.entry5.get()
        else:
            cmd.label(
                "( " + x[index] + " and (r. " + lig + " a. " + prevz +
                ") ) and (not (" + x[index] +
                " and (r. SWT or r. BWT or r. SWP))) " + " and name CA",
                "\" \"")

    def viewlabel(self):
        if (load > 0):
            if (self.wat.get() == 1):
                self.togglelabelws(self.vl.get(), int(self.scale.get()),
                                   self.entry4.get(), self.entry5.get())
            elif (self.lig.get() == 1):
                if (self.l1v.get() == 1):
                    vl = self.entry4.get()
                    hl = self.swapentry.get()
                if (self.l2v.get() == 1):
                    vl = self.swapentry.get()
                    hl = self.entry4.get()
                self.togglelabells(self.vl.get(), int(self.scale.get()), vl,
                                   self.entry5.get(), hl)
            elif (self.mm.get() == 1):
                self.togglelabelws(self.vl.get(), 0, self.entry4.get(),
                                   self.entry5.get())

    def viewsurface(self):  ##
        if (load > 0):
            self.togglesurface(self.sv.get())

    def optionws(self):
        if (self.wat.get() == 1):
            self.lig.set(0)
            self.mm.set(0)
            self.entry1.config(state="normal")
            self.browserButton.config(state="normal")
            self.swapentry.config(state=DISABLED)
            self.lig1ck.config(state=DISABLED)
            self.lig2ck.config(state=DISABLED)
            self.lblswap.config(state=DISABLED)
            self.entry2.config(state=DISABLED)
            self.entry3.config(state=DISABLED)
            self.browserButtonMM.config(state=DISABLED)
            self.browserButtonPDB.config(state=DISABLED)
        else:
            self.wat.set(0)
            self.lig.set(1)
            self.mm.set(0)
            self.swapentry.config(state="normal")
            self.lig1ck.config(state="normal")
            self.lig2ck.config(state="normal")
            self.lblswap.config(state="normal")
            self.entry1.config(state="normal")
            self.browserButton.config(state="normal")
            self.entry2.config(state=DISABLED)
            self.entry3.config(state=DISABLED)
            self.browserButtonMM.config(state=DISABLED)
            self.browserButtonPDB.config(state=DISABLED)

    def optionls(self):
        if (self.lig.get() == 1):
            self.wat.set(0)
            self.mm.set(0)
            self.swapentry.config(state="normal")
            self.lig1ck.config(state="normal")
            self.lig2ck.config(state="normal")
            self.lblswap.config(state="normal")
            self.entry1.config(state="normal")
            self.browserButton.config(state="normal")
            self.entry2.config(state=DISABLED)
            self.entry3.config(state=DISABLED)
            self.browserButtonMM.config(state=DISABLED)
            self.browserButtonPDB.config(state=DISABLED)
        else:
            self.lig.set(0)
            self.mm.set(0)
            self.wat.set(1)
            self.entry1.config(state="normal")
            self.browserButton.config(state="normal")
            self.swapentry.config(state=DISABLED)
            self.lig1ck.config(state=DISABLED)
            self.lig2ck.config(state=DISABLED)
            self.lblswap.config(state=DISABLED)
            self.entry2.config(state=DISABLED)
            self.entry3.config(state=DISABLED)
            self.browserButtonMM.config(state=DISABLED)
            self.browserButtonPDB.config(state=DISABLED)

    def optionmm(self):
        if (self.mm.get() == 1):
            self.lig.set(0)
            self.wat.set(0)
            self.swapentry.config(state=DISABLED)
            self.lig1ck.config(state=DISABLED)
            self.lig2ck.config(state=DISABLED)
            self.lblswap.config(state=DISABLED)
            self.entry8.config(state=DISABLED)
            self.entry9.config(state=DISABLED)
            self.entry1.config(state=DISABLED)
            self.browserButton.config(state=DISABLED)
            self.entry2.config(state="normal")
            self.entry3.config(state="normal")
            self.browserButtonMM.config(state="normal")
            self.browserButtonPDB.config(state="normal")
        else:
            self.wat.set(1)
            self.lig.set(0)
            self.mm.set(0)
            self.entry8.config(state="normal")
            self.entry9.config(state="normal")
            self.entry1.config(state="normal")
            self.browserButton.config(state="normal")
            self.entry2.config(state=DISABLED)
            self.entry3.config(state=DISABLED)
            self.browserButtonMM.config(state=DISABLED)
            self.browserButtonPDB.config(state=DISABLED)

    def changelig1(self):  ##
        if (self.l1v.get() == 1):
            self.l2v.set(0)
        else:
            self.l2v.set(1)
        if (load > 0):
            if (self.l1v.get() == 1):
                vl = self.entry4.get()
                hl = self.swapentry.get()
            if (self.l2v.get() == 1):
                vl = self.swapentry.get()
                hl = self.entry4.get()
            self.lsupdateview(vl, self.entry5.get(), self.entry6.get(),
                              self.entry7.get(), prevz, int(self.scale.get()),
                              hl, self.vl.get())

    def changelig2(self):  ##
        if (self.l2v.get() == 1):
            self.l1v.set(0)
        else:
            self.l1v.set(1)
        if (load > 0):
            if (self.l1v.get() == 1):
                vl = self.entry4.get()
                hl = self.swapentry.get()
            if (self.l2v.get() == 1):
                vl = self.swapentry.get()
                hl = self.entry4.get()
            self.lsupdateview(vl, self.entry5.get(), self.entry6.get(),
                              self.entry7.get(), prevz, int(self.scale.get()),
                              hl, self.vl.get())

    def loadmmpbsaresults(self):
        fp = open(self.entry3.get(), "r")
        e = 0
        atomcount = 0
        resnew = 0
        rescount = 0
        resnum = list()
        residuename = list()
        resv = list()
        atomnum = list()
        atomnums = list()
        score = list()
        r = ""
        rn = ""
        for line in fp:
            if e == 2:
                atomnum.append(atomnums)
                break
            t = line.split()
            if line.find('TER') != -1:
                e = e + 1
            if line.find('ATOM') != -1:
                if (resnew == 0):
                    r = t[4]
                    rn = t[3]
                    resnew = 1
                    resnum.append(r)
                    residuename.append(rn)
                    score.append(0)
                elif (r != t[4]):
                    r = t[4]
                    rn = t[3]
                    atomnum.append(atomnums)
                    resnum.append(r)
                    residuename.append(rn)
                    score.append(0)
                    atomnums = list()
                atomnums.append(atomcount)
                atomcount = atomcount + 1
        fp.close()
        ll = len(score)
        print(ll)
        resv = list()
        fp = open(self.entry2.get(), "r")
        for line in fp:
            t = line.split(',')
            t2 = t[0].split()
            if (len(t) == 20 and len(t2) == 2 and t2[0] != "LIG"):
                for xx in range(ll):
                    if (int(resnum[xx]) == int(t2[1])):
                        #print(str(ll)+"\t"+str(len(t)))
                        score[xx] = float(t[17])
            matchObj = re.match(r'Sidechain Energy Decomposition:', line,
                                re.M | re.I)
            if matchObj:
                break
        fp.close()
        x = len(score)
        data = list()
        for i in range(x):
            data.append([resnum[i], score[i], residuename[i], atomnum[i]])
        data.sort(key=lambda s: (int(s[0])))
        scores = list()
        for i in range(len(data)):
            for j in range(len(data[i][3])):
                scores.append("{0:.3f}".format(data[i][1]))
        fp = open(tempfile.gettempdir() + "/temp.txt", "w")
        xs = len(scores)
        for i in range(xs):
            fp.write(str(scores[i]) + "\n")
        fp.close()
        self.lb1.delete(0, END)
        self.lb2.delete(0, END)
        self.lb3.delete(0, END)

        for i in range(x):
            self.lb1.insert(END, data[i][0])
            self.lb2.insert(END, data[i][2])
            self.lb3.insert(END, round(data[i][1], 3))

        self.b1.config(state="normal")
        self.b2.config(state="normal")
        self.b3.config(state="normal")

    def changestate(self):  ##
        fp = open(self.entry1.get() + "/bound_mobile_000100_0.00500.pdb")
        lend = 0
        if (self.wat.get() == 1):
            lend = 2
        elif (self.lig.get() == 1):
            lend = 4
        e = 0
        atomcount = 0
        resnew = 0
        rescount = 0
        resnum = list()
        residuename = list()
        resv = list()
        atomnum = list()
        atomnums = list()
        score = list()
        r = ""
        rn = ""
        for line in fp:
            if e == lend:
                atomnum.append(atomnums)
                break
            t = line.split()
            if line.find('TER') != -1:
                e = e + 1
            if line.find('ATOM') != -1:
                if (resnew == 0):
                    r = t[4]
                    rn = t[3]
                    resnew = 1
                    resnum.append(r)
                    residuename.append(rn)
                    score.append(0)
                elif (r != t[4]):
                    r = t[4]
                    rn = t[3]
                    atomnum.append(atomnums)
                    resnum.append(r)
                    residuename.append(rn)
                    score.append(0)
                    atomnums = list()
                atomnums.append(atomcount)
                atomcount = atomcount + 1
        fp.close()
        x = list()
        tempx = list()
        ll = len(score)
        base = os.listdir(self.entry1.get())
        for a in base:
            if a.endswith(".log"):
                tempx.append(a)
        tempx.sort()
        tlen = len(tempx)
        ia = int(self.entry8.get())
        while (ia <= int(self.entry9.get()) and ia < tlen):
            x.append(tempx[ia])
            ia += 1
        c = 0
        i = 0
        for fn in x:
            fp = open(self.entry1.get() + "/" + fn, "r")
            if (c == 0):
                for line in fp:
                    t = line.split()
                    if (len(t) == 8):
                        if (t[0] == "Residue("):
                            for xx in range(ll):
                                if (int(resnum[xx]) == int(t[3])):
                                    score[xx] = float(t[5])
                    if (line == "PROTEIN BOX WATER FREE ENERGY COMPONENTS\n"):
                        c = c + 1
                        i = 0
                        break
            else:
                for line in fp:
                    t = line.split()
                    if (len(t) == 8):
                        if (t[0] == "Residue("):
                            for xx in range(ll):
                                if (int(t[3]) == int(resnum[xx])):
                                    score[xx] = score[xx] + float(t[5])
                                i = i + 1
                    if (line == "PROTEIN BOX WATER FREE ENERGY COMPONENTS\n"):
                        c = c + 1
                        i = 0
                        break
            fp.close()
        x = len(score)
        data = list()
        for i in range(x):
            data.append([resnum[i], score[i], residuename[i], atomnum[i]])
        data.sort(key=lambda s: (int(s[0])))
        for i in range(x):
            data[i][1] = data[i][1] / c
        scores = list()
        for i in range(len(data)):
            for j in range(len(data[i][3])):
                scores.append("{0:.3f}".format(data[i][1]))
        self.lb1.delete(0, END)
        self.lb2.delete(0, END)
        self.lb3.delete(0, END)

        for i in range(x):
            self.lb1.insert(END, data[i][0])
            self.lb2.insert(END, data[i][2])
            self.lb3.insert(END, round(data[i][1], 3))

        fp = open(tempfile.gettempdir() + "/temp.txt", "w")
        lx = len(scores)
        for i in range(lx):
            fp.write(str(scores[i]) + "\n")
        fp.close()
        self.b1.config(state="normal")
        self.b2.config(state="normal")
        self.b3.config(state="normal")

    def prevframe(self):
        global prevz, load
        if (load > 0):
            self.scale.set(self.scale.get() - 1)

    def nextframe(self):
        global prevz, load
        if (load > 0):
            self.scale.set(self.scale.get() + 1)

    def onScale(self, val):
        global prevz, load
        if (load > 0):
            v = self.lig1pdb[int(float(val))][14:19]
            self.var.set(v)
            if (self.scale.get() == 0):
                self.previous.config(state=DISABLED)
            if (self.scale.get() == len(self.lig1pdb) - 2):
                self.next.config(state="normal")
            if (self.scale.get() == 1):
                self.previous.config(state="normal")
            if (self.scale.get() == len(self.lig1pdb) - 1):
                self.next.config(state=DISABLED)
            if (self.wat.get() == 1):
                self.wsupdateview(self.entry4.get(), self.entry5.get(),
                                  self.entry6.get(), self.entry7.get(), prevz,
                                  int(self.scale.get()), self.vl.get())
            elif (self.lig.get() == 1):
                if (self.l1v.get() == 1):
                    vl = self.entry4.get()
                    hl = self.swapentry.get()
                if (self.l2v.get() == 1):
                    vl = self.swapentry.get()
                    hl = self.entry4.get()
                self.lsupdateview(vl, self.entry5.get(), self.entry6.get(),
                                  self.entry7.get(), prevz,
                                  int(self.scale.get()), hl, self.vl.get())

    def OnSelect(self, val):
        global prev
        sender = val.widget
        idx = sender.curselection()
        if (idx != ()):
            dis = self.lb1.get(idx)
            if (self.wat.get() == 1 or self.lig.get() == 1):
                self.wslistdisplay(prev, dis, int(self.scale.get()))
            elif (self.mm.get() == 1):
                self.wslistdisplay(prev, dis, 0)
            prev = dis

    def sortdata(self, sc):
        global dr1, dr2, dr3
        tableData1 = self.lb1.get(0, END)
        tableData2 = self.lb2.get(0, END)
        tableData3 = self.lb3.get(0, END)

        data = list()
        nv = len(tableData1)
        for x in range(nv):
            data.append([tableData1[x], tableData2[x], tableData3[x]])

        if (sc == 0):
            lab = self.b1.cget('text')
            if lab[0] == '[': self.b1.config(text=lab[4:])
            lab = self.b2.cget('text')
            if lab[0] == '[': self.b2.config(text=lab[4:])
            lab = self.b3.cget('text')
            if lab[0] == '[': self.b3.config(text=lab[4:])
            lab = self.b1.cget('text')
            if dr1 == 1: self.b1.config(text='[+] ' + lab)
            else: self.b1.config(text='[-] ' + lab)
            data.sort(key=lambda s: (int(s[sc])), reverse=dr1 == 1)
            dr1 = dr1 * -1
        if (sc == 1):
            lab = self.b1.cget('text')
            if lab[0] == '[': self.b1.config(text=lab[4:])
            lab = self.b2.cget('text')
            if lab[0] == '[': self.b2.config(text=lab[4:])
            lab = self.b3.cget('text')
            if lab[0] == '[': self.b3.config(text=lab[4:])
            lab = self.b2.cget('text')
            if dr2 == 1: self.b2.config(text='[+] ' + lab)
            else: self.b2.config(text='[-] ' + lab)
            data.sort(key=lambda s: (s[sc]), reverse=dr2 == 1)
            dr2 = dr2 * -1
        if (sc == 2):
            lab = self.b1.cget('text')
            if lab[0] == '[': self.b1.config(text=lab[4:])
            lab = self.b2.cget('text')
            if lab[0] == '[': self.b2.config(text=lab[4:])
            lab = self.b3.cget('text')
            if lab[0] == '[': self.b3.config(text=lab[4:])
            lab = self.b3.cget('text')
            if dr3 == 1: self.b3.config(text='[+] ' + lab)
            else: self.b3.config(text='[-] ' + lab)
            data.sort(key=lambda s: (float(s[sc])), reverse=dr3 == 1)
            dr3 = dr3 * -1
        nv = len(data)
        self.lb1.delete(0, 'end')
        self.lb2.delete(0, 'end')
        self.lb3.delete(0, 'end')
        for x in range(nv):
            self.lb1.insert(END, data[x][0])
            self.lb2.insert(END, data[x][1])
            self.lb3.insert(END, data[x][2])

    def onOpen(self):
        global load
        fold = tkFileDialog.askdirectory()
        self.entry1.delete(0, 'end')
        self.entry1.insert(0, fold)
        load = 0

    def onOpenMM(self):
        global load
        fold = tkFileDialog.askopenfilename()
        self.entry2.delete(0, 'end')
        self.entry2.insert(0, fold)
        load = 0

    def onOpenPDB(self):
        global load
        fold = tkFileDialog.askopenfilename()
        self.entry3.delete(0, 'end')
        self.entry3.insert(0, fold)
        load = 0

    def OnVsb(self, *args):
        self.lb1.yview(*args)
        self.lb2.yview(*args)
        self.lb3.yview(*args)

    def OnMouseWheel(self, event):
        self.lb1.yview("scroll", event.delta, "units")
        self.lb2.yview("scroll", event.delta, "units")
        self.lb3.yview("scroll", event.delta, "units")
        return "break"

    def Apply(self):
        global load, prevz
        if (load == 0):

            if (self.wat.get() == 1 or self.lig.get() == 1):
                self.changestate()
                self.base = os.listdir(self.entry1.get())
                pdb1 = list()
                for a in self.base:
                    matchObj = re.match(r'bound_mobile_\d{6}_0\.\d{5}\.pdb', a,
                                        re.M | re.I)
                    if matchObj:
                        pdb1.append(a)
                self.lig1pdb = list()
                self.lig2pdb = list()
                x = pdb1[1][22:27]

                for a in pdb1:

                    matchObj = re.match(r'bound_mobile_\d{6}_0\.' + x + '.pdb',
                                        a, re.M | re.I)
                    if matchObj:
                        self.lig1pdb.append(a)
                    else:
                        self.lig2pdb.append(a)
                self.lig1pdb.sort()
                self.lig2pdb.sort()
                self.scale.configure(from_=0, to=len(self.lig1pdb) - 1)
                self.scale.config(state="normal")

            elif (self.mm.get() == 1):
                self.loadmmpbsaresults()
                self.mmloadpdb(self.entry3.get())
                self.wsvisualizer(0, self.entry4.get(), self.entry5.get(),
                                  self.entry6.get(), self.entry7.get(),
                                  self.vl.get())

            if (self.wat.get() == 1):
                self.wsloadallpdb(self.lig1pdb, self.entry1.get())
                self.next.config(state="normal")
                v = self.lig1pdb[0][14:19]
                self.var.set(v)
                self.wsvisualizer(int(self.scale.get()), self.entry4.get(),
                                  self.entry5.get(), self.entry6.get(),
                                  self.entry7.get(), self.vl.get())
            elif (self.lig.get() == 1):
                if (self.l1v.get() == 1):
                    vl = self.entry4.get()
                    hl = self.swapentry.get()
                if (self.l2v.get() == 1):
                    vl = self.swapentry.get()
                    hl = self.entry4.get()
                self.wsloadallpdb(self.lig1pdb, self.entry1.get())
                self.next.config(state="normal")
                v = self.lig1pdb[0][14:19]
                self.var.set(v)
                self.lsvisualizer(int(self.scale.get()), vl, self.entry5.get(),
                                  self.entry6.get(), self.entry7.get(), hl,
                                  self.vl.get())
            load = 1

        else:  #old code "else:"

            if (self.wat.get() == 1):
                self.wsupdateview(self.entry4.get(), self.entry5.get(),
                                  self.entry6.get(), self.entry7.get(), prevz,
                                  int(self.scale.get()), self.vl.get())
            elif (self.lig.get() == 1):
                if (self.l1v.get() == 1):
                    vl = self.entry4.get()
                    hl = self.swapentry.get()
                if (self.l2v.get() == 1):
                    vl = self.swapentry.get()
                    hl = self.entry4.get()

                self.lsupdateview(vl, self.entry5.get(), self.entry6.get(),
                                  self.entry7.get(), prevz,
                                  int(self.scale.get()), hl, self.vl.get())
            elif (self.mm.get() == 1):
                self.wsupdateview(self.entry4.get(), self.entry5.get(),
                                  self.entry6.get(), self.entry7.get(), prevz,
                                  0, self.vl.get())
        prevz = self.entry5.get()
コード例 #11
0
    def initUI(self):
        self.parent.title("Filter Data")
        self.pack(fill=BOTH, expand=True)
        labelfont20 = ('Roboto', 15, 'bold')
        labelfont10 = ('Roboto', 10, 'bold')
        labelfont8 = ('Roboto', 8, 'bold')
        
        frame0 = Frame(self)
        frame0.pack()
        
        lbl0 = Label(frame0, text="Hi Nakul")
        lbl0.config(font=labelfont20)    
        lbl0.pack( padx=5, pady=5)
        lbl00 = Label(frame0, text="Filter Data")
        lbl00.config(font=labelfont10)
        lbl00.pack( padx=5, pady=5)
        
        ####################################
        
        
        ##########################################
        
        
        ############################################
        #####printing line
        
        lbl5a = Label(text="__________________________________")
        lbl5a.pack()
        lbl5a.place(x=170, y=300)
        
        lbl5b = Label(text="__________________________________")
        lbl5b.pack()
        lbl5b.place(x=480, y=300)
        
        self.lbl5c = Label(text="Search Result Will Appear Here")
        self.lbl5c.pack()
        self.lbl5c.place(x=170, y=320)
        
        self.lbl5d = Label(text="File Name Will Appear Here")
        self.lbl5d.pack()
        self.lbl5d.place(x=480, y=320)
        
        ############################################
        
        
        #############################################
        
        ###############################################
        
        
        ##############################################
        
        #############################################
        
        frame11 = Frame(self)
        frame11.pack()
        frame11.place(x=200, y=100)
        
        lbl11x = Label(frame11,text="Class 10th %")
        lbl11x.pack(padx=0, pady=0)
        
               

        self.entry11 = Entry(width=12)
        self.entry11.pack(padx=1, expand=True)
        self.entry11.place(x=200, y=120) 
        
        
        
        
        ####################################################
        frame12 = Frame(self)
        frame12.pack()
        frame12.place(x=380, y=100)
        
        lbl12x = Label(frame12,text="Class 12th %")
        lbl12x.pack(padx=0, pady=0)
        
               

        self.entry12 = Entry(width=12)
        self.entry12.pack(padx=1, expand=True)
        self.entry12.place(x=380, y=120) 
        
        

        #####################################################
        frame13 = Frame(self)
        frame13.pack()
        frame13.place(x=550, y=100)
        
        lbl13x = Label(frame13,text="B.Tech %")
        lbl13x.pack(padx=0, pady=0)
        
               

        self.entry13 = Entry(width=12)
        self.entry13.pack(padx=1, expand=True)
        self.entry13.place(x=550, y=120) 
        
        
        
        ####################################################
        frame9 = Frame(self)
        frame9.pack()
        frame9.place(x=350, y=160)
        
        lbl9 = Label(frame9, text="HomeTown:")
        lbl9.pack()        

        self.entry9 = Entry(frame9)
        self.entry9.pack(fill=X, padx=5, expand=True)
        
        
             
         
        
        
        #############################################################
        frame16 = Frame(self)
        frame16.pack()
        frame16.place(x=190, y=250)
        closeButton = Button(frame16, text="Filter",width=20,command=self.getDatax2)
        closeButton.pack(padx=5, pady=5)
        
        #######################################
        frame17 = Frame(self)
        frame17.pack()
        frame17.place(x=500, y=250)
        closeButton = Button(frame17, text="Save & Open",width=20,command=self.getDatax3)
        closeButton.pack(padx=5, pady=5)
        
        #######################################
        
        frame000 = Frame(self)
        frame000.pack()
        frame000.place(x=50, y=600)
        
        self.lbl000= Label(frame000, text="Beta/Sample2.0 | (c) Nakul Rathore")
        self.lbl000.config(font=labelfont8)    
        self.lbl000.pack( padx=5, pady=5)
コード例 #12
0
class Example(Frame):
  
    def __init__(self, parent):
        Frame.__init__(self, parent)   
         
        self.parent = parent
        
        self.initUI()
        
        
    def initUI(self):
        self.parent.title("Filter Data")
        self.pack(fill=BOTH, expand=True)
        labelfont20 = ('Roboto', 15, 'bold')
        labelfont10 = ('Roboto', 10, 'bold')
        labelfont8 = ('Roboto', 8, 'bold')
        
        frame0 = Frame(self)
        frame0.pack()
        
        lbl0 = Label(frame0, text="Hi Nakul")
        lbl0.config(font=labelfont20)    
        lbl0.pack( padx=5, pady=5)
        lbl00 = Label(frame0, text="Filter Data")
        lbl00.config(font=labelfont10)
        lbl00.pack( padx=5, pady=5)
        
        ####################################
        
        
        ##########################################
        
        
        ############################################
        #####printing line
        
        lbl5a = Label(text="__________________________________")
        lbl5a.pack()
        lbl5a.place(x=170, y=300)
        
        lbl5b = Label(text="__________________________________")
        lbl5b.pack()
        lbl5b.place(x=480, y=300)
        
        self.lbl5c = Label(text="Search Result Will Appear Here")
        self.lbl5c.pack()
        self.lbl5c.place(x=170, y=320)
        
        self.lbl5d = Label(text="File Name Will Appear Here")
        self.lbl5d.pack()
        self.lbl5d.place(x=480, y=320)
        
        ############################################
        
        
        #############################################
        
        ###############################################
        
        
        ##############################################
        
        #############################################
        
        frame11 = Frame(self)
        frame11.pack()
        frame11.place(x=200, y=100)
        
        lbl11x = Label(frame11,text="Class 10th %")
        lbl11x.pack(padx=0, pady=0)
        
               

        self.entry11 = Entry(width=12)
        self.entry11.pack(padx=1, expand=True)
        self.entry11.place(x=200, y=120) 
        
        
        
        
        ####################################################
        frame12 = Frame(self)
        frame12.pack()
        frame12.place(x=380, y=100)
        
        lbl12x = Label(frame12,text="Class 12th %")
        lbl12x.pack(padx=0, pady=0)
        
               

        self.entry12 = Entry(width=12)
        self.entry12.pack(padx=1, expand=True)
        self.entry12.place(x=380, y=120) 
        
        

        #####################################################
        frame13 = Frame(self)
        frame13.pack()
        frame13.place(x=550, y=100)
        
        lbl13x = Label(frame13,text="B.Tech %")
        lbl13x.pack(padx=0, pady=0)
        
               

        self.entry13 = Entry(width=12)
        self.entry13.pack(padx=1, expand=True)
        self.entry13.place(x=550, y=120) 
        
        
        
        ####################################################
        frame9 = Frame(self)
        frame9.pack()
        frame9.place(x=350, y=160)
        
        lbl9 = Label(frame9, text="HomeTown:")
        lbl9.pack()        

        self.entry9 = Entry(frame9)
        self.entry9.pack(fill=X, padx=5, expand=True)
        
        
             
         
        
        
        #############################################################
        frame16 = Frame(self)
        frame16.pack()
        frame16.place(x=190, y=250)
        closeButton = Button(frame16, text="Filter",width=20,command=self.getDatax2)
        closeButton.pack(padx=5, pady=5)
        
        #######################################
        frame17 = Frame(self)
        frame17.pack()
        frame17.place(x=500, y=250)
        closeButton = Button(frame17, text="Save & Open",width=20,command=self.getDatax3)
        closeButton.pack(padx=5, pady=5)
        
        #######################################
        
        frame000 = Frame(self)
        frame000.pack()
        frame000.place(x=50, y=600)
        
        self.lbl000= Label(frame000, text="Beta/Sample2.0 | (c) Nakul Rathore")
        self.lbl000.config(font=labelfont8)    
        self.lbl000.pack( padx=5, pady=5)
        
        
        
    def getDatax2(self):
        x1 = self.entry11.get()
        if x1 != "":
            x1 = int(x1)
        
        x2 = self.entry12.get()
        if x2 != "":
            x2 = int(x2)
        x3 = self.entry13.get()
        if x3 != "":
            x3 = int(x3)
        x4 = self.entry9.get()
        list1=[x1,x2,x3,x4]
        
        wb = openpyxl.load_workbook('..\database\database.xlsx')
        ws = wb.active
        print(wb.get_sheet_names())
        max_row = ws.get_highest_row()
        max_col = ws.get_highest_column()
        global temp
        global tempx
        temp = []
        tempx = []
        for i in xrange(2,max_row+1):
            temp.append(i)
        #print temp
        
        if isinstance(x1, int):
            for i in temp:
                if ws.cell(row = i, column = 11).value >= x1:
                    tempx.append(i)
            temp = tempx
            tempx = []
            print temp
            
        if isinstance(x2, int):
            for i in temp:
                if ws.cell(row = i, column = 14).value >= x2:
                    tempx.append(i)
            temp = tempx
            tempx = []
            print temp
        if isinstance(x3, int):
            for i in temp:
                if ws.cell(row = i, column = 17).value >= x3:
                    tempx.append(i)
            temp = tempx
            tempx = []
            print temp
            
        if isinstance(x3, str) and x3 != "":
            for i in temp:
                if ws.cell(row = i, column = 9).value == x4:
                    tempx.append(i)
            temp = tempx
            tempx = []
            print temp
        self.lbl5c.config(text=""+str(len(temp))+" result(s) found")
            
    def getDatax3(self):
        import datetime
        now = datetime.datetime.now()
        now = now.replace(microsecond=0,second = 0)
        now = now.strftime("%d_%B_%y,%I-%M_%p")
        now = now+".xlsx"
        
       
        
        
        if len(temp) != 0:
            wb1 = openpyxl.load_workbook('..\database\database.xlsx')
            ws1 = wb1.active
            wb2 = openpyxl.load_workbook('..\_frame\_frame.xlsx')
            ws2 = wb2.active
        
            for i in xrange(2,len(temp)+2):
                for j in xrange(1,22):
                    ws2.cell(row = i, column = j).value = ws1.cell(row = temp[i-2], column = j).value
        
        wb2.save('..\Result\\'+now)
        tempstart = '..\Result\\'+now
        self.lbl5d.config(text="File is :: "+"\""+now+"\"")
        os.system("start "+tempstart)
        
        self.entry11.delete(0, 'end')
        self.entry12.delete(0, 'end')
        self.entry13.delete(0, 'end')
        self.entry9.delete(0, 'end')
コード例 #13
0
ファイル: gui.py プロジェクト: saadraza128/CHEWD
class CHEWDDialog(ModelessDialog):
    name = "Energy Visualizer"
    buttons = ("Apply", "Close")
    help = ("Energy.html", CHEWD)
    title = "CHemical Energy Wise Decomposition"

    def fillInUI(self, parent):

        #parent.resizable(0, 0)
        frame4 = Frame(parent)
        frame4.grid(row=0, column=0, sticky="nsew")
        self.wat = IntVar()
        self.wat.set(1)
        self.waterswap = Checkbutton(frame4,
                                     text="Water Swap",
                                     command=self.optionws,
                                     variable=self.wat)
        self.waterswap.grid(row=0, column=0)
        self.lig = IntVar()
        self.lig.set(0)
        self.ligandswap = Checkbutton(frame4,
                                      text="Ligand Swap",
                                      command=self.optionls,
                                      variable=self.lig)
        self.ligandswap.grid(row=0, column=1)
        self.mm = IntVar()
        self.mm.set(0)
        self.mmpbsa = Checkbutton(frame4,
                                  text="MMPBSA",
                                  command=self.optionmm,
                                  variable=self.mm)
        self.mmpbsa.grid(row=0, column=2)

        frame1 = Frame(parent)
        frame1.grid(row=1, column=0, sticky="nsew")
        lbl1 = Label(frame1, text="Log file folder", width=12)
        lbl1.grid(row=0, column=0)
        self.entry1 = Entry(frame1)
        self.entry1.grid(row=0, column=1, columnspan=4, sticky=W + E)
        self.browserButton = Button(frame1,
                                    text="Browser",
                                    command=self.onOpen)
        self.browserButton.grid(row=0, column=5, sticky="e")

        lbl2 = Label(frame1, text="MMPBSA log file", width=12)
        lbl2.grid(row=1, column=0)
        self.entry2 = Entry(frame1, state=DISABLED)
        self.entry2.grid(row=1, column=1, columnspan=4, sticky=W + E)
        self.browserButtonMM = Button(frame1,
                                      text="Browser",
                                      command=self.onOpenMM,
                                      state=DISABLED)
        self.browserButtonMM.grid(row=1, column=5, sticky="e")

        lbl3 = Label(frame1, text="MMPBSA PDB file", width=12)
        lbl3.grid(row=2, column=0)
        self.entry3 = Entry(frame1, state=DISABLED)
        self.entry3.grid(row=2, column=1, columnspan=4, sticky=W + E)
        self.browserButtonPDB = Button(frame1,
                                       text="Browser",
                                       command=self.onOpenPDB,
                                       state=DISABLED)
        self.browserButtonPDB.grid(row=2, column=5, sticky="e")

        lbl4 = Label(frame1, text="Ligand Name", width=12)
        lbl4.grid(row=3, column=0)
        self.entry4 = Entry(frame1)
        self.entry4.grid(row=3, column=1)
        self.lblswap = Label(frame1,
                             text="Swap Ligand",
                             width=12,
                             state=DISABLED)
        self.lblswap.grid(row=3, column=2)
        self.swapentry = Entry(frame1, state=DISABLED)
        self.swapentry.grid(row=3, column=3)
        self.l1v = IntVar()
        self.l1v.set(1)
        self.lig1ck = Checkbutton(frame1,
                                  text="Ligand 1",
                                  command=self.changelig1,
                                  state=DISABLED,
                                  variable=self.l1v)
        self.lig1ck.grid(row=4, column=0)
        self.l2v = IntVar()
        self.l2v.set(0)
        self.lig2ck = Checkbutton(frame1,
                                  text="Ligand 2",
                                  command=self.changelig2,
                                  state=DISABLED,
                                  variable=self.l2v)
        self.lig2ck.grid(row=4, column=2)
        lbl5 = Label(frame1, text="Display Radius", width=12)
        lbl5.grid(row=5, column=0)
        self.entry5 = Entry(frame1)
        self.entry5.grid(row=5, column=1)
        self.entry5.insert(0, "5.0")
        self.sv = IntVar()
        self.sv.set(0)
        self.surface = Checkbutton(frame1,
                                   text="View Surface",
                                   command=self.viewsurface,
                                   variable=self.sv)
        self.surface.grid(row=5, column=2)
        self.vl = IntVar()
        self.vl.set(1)
        self.label = Checkbutton(frame1,
                                 text="View Label",
                                 command=self.viewlabel,
                                 variable=self.vl)
        self.label.grid(row=5, column=3)

        lbl6 = Label(frame1, text="Min Value", width=12)
        lbl6.grid(row=6, column=0)
        self.entry6 = Entry(frame1)
        self.entry6.grid(row=6, column=1)
        self.entry6.insert(0, "-5")
        lbl7 = Label(frame1, text="Max Value", width=12)
        lbl7.grid(row=6, column=2)
        self.entry7 = Entry(frame1)
        self.entry7.grid(row=6, column=3)
        self.entry7.insert(0, "+5")

        lbl8 = Label(frame1, text="Starting log file", width=12)
        lbl8.grid(row=7, column=0)
        self.entry8 = Entry(frame1)
        self.entry8.grid(row=7, column=1)
        self.entry8.insert(0, "400")
        lbl9 = Label(frame1, text="Ending log file", width=12)
        lbl9.grid(row=7, column=2)
        self.entry9 = Entry(frame1)
        self.entry9.grid(row=7, column=3)
        self.entry9.insert(0, "1000")

        frame2 = Frame(parent)
        frame2.grid(row=2, column=0, sticky="nsew")
        self.vsb = Scrollbar(frame2, orient="vertical", command=self.OnVsb)
        self.vsb.grid(row=1, column=3, sticky="ns")
        self.lb1 = Listbox(frame2, yscrollcommand=self.vsb.set)
        self.lb1.grid(row=1, column=0)
        self.lb2 = Listbox(frame2, yscrollcommand=self.vsb.set)
        self.lb2.grid(row=1, column=1)
        self.lb3 = Listbox(frame2, yscrollcommand=self.vsb.set)
        self.lb3.grid(row=1, column=2)

        self.b1 = Button(frame2,
                         text="Residue Number",
                         state=DISABLED,
                         command=lambda: self.sortdata(0))
        self.b1.grid(row=0, column=0, sticky=W + E)
        self.b2 = Button(frame2,
                         text="Residue Name",
                         state=DISABLED,
                         command=lambda: self.sortdata(1))
        self.b2.grid(row=0, column=1, sticky=W + E)
        self.b3 = Button(frame2,
                         text="Energy Value",
                         state=DISABLED,
                         command=lambda: self.sortdata(2))
        self.b3.grid(row=0, column=2, sticky=W + E)

        self.lb1.bind("<<ListboxSelect>>", self.OnSelect)
        self.lb1.bind("<MouseWheel>", self.OnMouseWheel)
        self.lb2.bind("<<ListboxSelect>>", self.OnSelect)
        self.lb2.bind("<MouseWheel>", self.OnMouseWheel)
        self.lb3.bind("<<ListboxSelect>>", self.OnSelect)
        self.lb3.bind("<MouseWheel>", self.OnMouseWheel)

        frame3 = Frame(parent)
        frame3.grid(row=3, column=0, sticky="nsew")

        self.previous = Button(frame3,
                               text="Previous Frame",
                               state=DISABLED,
                               command=self.prevframe)
        self.previous.grid(row=0, column=0, sticky=W + E)
        self.scale = Scale(frame3,
                           command=self.onScale,
                           state=DISABLED,
                           orient=HORIZONTAL,
                           length=320,
                           showvalue=0)
        self.scale.grid(row=0, column=1, sticky=W + E)
        self.next = Button(frame3,
                           text="Next Frame",
                           state=DISABLED,
                           command=self.nextframe)
        self.next.grid(row=0, column=2, sticky=W + E)

        self.var = IntVar()
        v = 000
        self.var.set(v)
        self.label = Label(frame3, text=0, textvariable=self.var)
        self.label.grid(row=0, column=3)

        ToolTip(lbl1, "Load the result directory of Sire Analysis")
        ToolTip(self.browserButton,
                "Load the result directory of Sire Analysis")
        ToolTip(lbl4, "Enter the name of the Ligand in your coordinate file")
        ToolTip(
            lbl5,
            "The radially distributed zone around ligand you want to be displayed"
        )
        ToolTip(
            lbl6,
            "Minimum scale value for the color distribution and it will be treated as blue"
        )
        ToolTip(
            lbl7,
            "Maximum scale value for the color distribution and it will be treated as red"
        )

    def viewlabel(self):
        if (load > 0):
            if (self.wat.get() == 1):
                CHEWD.togglelabelws(self.vl.get(), str(self.scale.get()),
                                    self.entry4.get(), self.entry5.get())
            elif (self.lig.get() == 1):
                if (self.l1v.get() == 1):
                    vl = self.entry4.get()
                    hl = self.swapentry.get()
                if (self.l2v.get() == 1):
                    vl = self.swapentry.get()
                    hl = self.entry4.get()
                CHEWD.togglelabells(self.vl.get(), str(self.scale.get()), vl,
                                    self.entry5.get(), hl)
            elif (self.mm.get() == 1):
                CHEWD.togglelabelws(self.vl.get(), "0", self.entry4.get(),
                                    self.entry5.get())

    def viewsurface(self):
        if (load > 0):
            CHEWD.togglesurface(self.sv.get())

    def optionws(self):
        if (self.wat.get() == 1):
            self.lig.set(0)
            self.mm.set(0)
            self.entry1.config(state="normal")
            self.browserButton.config(state="normal")
            self.swapentry.config(state=DISABLED)
            self.lig1ck.config(state=DISABLED)
            self.lig2ck.config(state=DISABLED)
            self.lblswap.config(state=DISABLED)
            self.entry2.config(state=DISABLED)
            self.entry3.config(state=DISABLED)
            self.browserButtonMM.config(state=DISABLED)
            self.browserButtonPDB.config(state=DISABLED)
        else:
            self.wat.set(0)
            self.lig.set(1)
            self.mm.set(0)
            self.swapentry.config(state="normal")
            self.lig1ck.config(state="normal")
            self.lig2ck.config(state="normal")
            self.lblswap.config(state="normal")
            self.entry1.config(state="normal")
            self.browserButton.config(state="normal")
            self.entry2.config(state=DISABLED)
            self.entry3.config(state=DISABLED)
            self.browserButtonMM.config(state=DISABLED)
            self.browserButtonPDB.config(state=DISABLED)

    def optionls(self):
        if (self.lig.get() == 1):
            self.wat.set(0)
            self.mm.set(0)
            self.swapentry.config(state="normal")
            self.lig1ck.config(state="normal")
            self.lig2ck.config(state="normal")
            self.lblswap.config(state="normal")
            self.entry1.config(state="normal")
            self.browserButton.config(state="normal")
            self.entry2.config(state=DISABLED)
            self.entry3.config(state=DISABLED)
            self.browserButtonMM.config(state=DISABLED)
            self.browserButtonPDB.config(state=DISABLED)
        else:
            self.lig.set(0)
            self.mm.set(0)
            self.wat.set(1)
            self.entry1.config(state="normal")
            self.browserButton.config(state="normal")
            self.swapentry.config(state=DISABLED)
            self.lig1ck.config(state=DISABLED)
            self.lig2ck.config(state=DISABLED)
            self.lblswap.config(state=DISABLED)
            self.entry2.config(state=DISABLED)
            self.entry3.config(state=DISABLED)
            self.browserButtonMM.config(state=DISABLED)
            self.browserButtonPDB.config(state=DISABLED)

    def optionmm(self):
        if (self.mm.get() == 1):
            self.lig.set(0)
            self.wat.set(0)
            self.swapentry.config(state=DISABLED)
            self.lig1ck.config(state=DISABLED)
            self.lig2ck.config(state=DISABLED)
            self.lblswap.config(state=DISABLED)
            self.entry8.config(state=DISABLED)
            self.entry9.config(state=DISABLED)
            self.entry1.config(state=DISABLED)
            self.browserButton.config(state=DISABLED)
            self.entry2.config(state="normal")
            self.entry3.config(state="normal")
            self.browserButtonMM.config(state="normal")
            self.browserButtonPDB.config(state="normal")
        else:
            self.wat.set(1)
            self.lig.set(0)
            self.mm.set(0)
            self.entry8.config(state="normal")
            self.entry9.config(state="normal")
            self.entry1.config(state="normal")
            self.browserButton.config(state="normal")
            self.entry2.config(state=DISABLED)
            self.entry3.config(state=DISABLED)
            self.browserButtonMM.config(state=DISABLED)
            self.browserButtonPDB.config(state=DISABLED)

    def changelig1(self):
        if (self.l1v.get() == 1):
            self.l2v.set(0)
        else:
            self.l2v.set(1)
        if (load > 0):
            if (self.l1v.get() == 1):
                vl = self.entry4.get()
                hl = self.swapentry.get()
            if (self.l2v.get() == 1):
                vl = self.swapentry.get()
                hl = self.entry4.get()
            CHEWD.lsupdateview(vl, self.entry5.get(), self.entry6.get(),
                               self.entry7.get(), prevz, str(self.scale.get()),
                               hl, self.vl.get())

    def changelig2(self):
        if (self.l2v.get() == 1):
            self.l1v.set(0)
        else:
            self.l1v.set(1)
        if (load > 0):
            if (self.l1v.get() == 1):
                vl = self.entry4.get()
                hl = self.swapentry.get()
            if (self.l2v.get() == 1):
                vl = self.swapentry.get()
                hl = self.entry4.get()
            CHEWD.lsupdateview(vl, self.entry5.get(), self.entry6.get(),
                               self.entry7.get(), prevz, str(self.scale.get()),
                               hl, self.vl.get())

    def loadmmpbsaresults(self):
        fp = open(self.entry2.get(), "r")
        resv = list()
        for line in fp:
            t = line.split(',')
            t2 = t[0].split()
            if (len(t) == 20 and len(t2) == 2 and t2[0] != self.entry4.get()):
                resv.append([int(t2[1]), float(t[17]), t2[0]])
            matchObj = re.match(r'Sidechain Energy Decomposition:', line,
                                re.M | re.I)
            if matchObj:
                break
        self.lb1.delete(0, END)
        self.lb2.delete(0, END)
        self.lb3.delete(0, END)
        x = len(resv)
        for i in range(x):
            self.lb1.insert(END, resv[i][0])
            self.lb2.insert(END, resv[i][2])
            self.lb3.insert(END, resv[i][1])
        fp = open(tempfile.gettempdir() + "/temp.txt", "w")
        fc = open(tempfile.gettempdir() + "/clear.txt", "w")
        fp.write("attribute: sireEnergy\n")
        fp.write("recipient: residues\n")
        fc.write("attribute: sireEnergy\n")
        fc.write("recipient: residues\n")
        for i in range(x):
            fp.write("\t:" + str(resv[i][0]) + "\t" + str(resv[i][1]) + "\n")
            fc.write("\t:" + str(resv[i][0]) + "\t0.0\n")
        fp.close()
        fc.close()
        self.b1.config(state="normal")
        self.b2.config(state="normal")
        self.b3.config(state="normal")

    def changestate(self):
        x = list()
        tempx = list()
        if (self.wat.get() == 1):
            base = os.listdir(self.entry1.get())
        else:
            base = os.listdir(self.entry1.get() + "/")
        for a in base:
            if a.endswith(".log"):
                tempx.append(a)
        tempx.sort()
        tlen = len(tempx)
        ia = int(self.entry8.get()) - 1
        while (ia <= int(self.entry9.get()) and ia < tlen):
            x.append(tempx[ia])
            ia += 1
        resv = list()
        c = 0
        i = 0
        for fn in x:
            if (self.wat.get() == 1):
                fp = open(self.entry1.get() + "/" + fn, "r")
            else:
                fp = open(self.entry1.get() + "/" + fn, "r")
            if (c == 0):
                for line in fp:
                    t = line.split()
                    if (len(t) == 8):
                        if (t[0] == "Residue("):
                            resv.append([int(t[3]), float(t[5]), t[1]])
                    if (line == "PROTEIN BOX WATER FREE ENERGY COMPONENTS\n"):
                        c = c + 1
                        i = 0
                        break
            else:
                for line in fp:
                    t = line.split()
                    if (len(t) == 8):
                        if (t[0] == "Residue("):
                            resv[i][1] = resv[i][1] + float(t[5])
                            i = i + 1
                    if (line == "PROTEIN BOX WATER FREE ENERGY COMPONENTS\n"):
                        c = c + 1
                        i = 0
                        break
            fp.close()
        x = len(resv)
        self.lb1.delete(0, END)
        self.lb2.delete(0, END)
        self.lb3.delete(0, END)
        for i in range(x):
            resv[i][1] = resv[i][1] / c
        for i in range(x):
            self.lb1.insert(END, resv[i][0])
            self.lb2.insert(END, resv[i][2])
            self.lb3.insert(END, round(resv[i][1], 3))

        fp = open(tempfile.gettempdir() + "/temp.txt", "w")
        fc = open(tempfile.gettempdir() + "/clear.txt", "w")
        fp.write("attribute: sireEnergy\n")
        fp.write("recipient: residues\n")
        fc.write("attribute: sireEnergy\n")
        fc.write("recipient: residues\n")
        for i in range(x):
            fp.write("\t:" + str(resv[i][0]) + "\t" + str(resv[i][1]) + "\n")
            fc.write("\t:" + str(resv[i][0]) + "\t0.0\n")
        fp.close()
        fc.close()
        self.b1.config(state="normal")
        self.b2.config(state="normal")
        self.b3.config(state="normal")

    def prevframe(self):
        global prevz, load
        if (load > 0):
            self.scale.set(self.scale.get() - 1)

    def nextframe(self):
        global prevz, load
        if (load > 0):
            self.scale.set(self.scale.get() + 1)

    def onScale(self, val):
        global prevz, load
        if (load > 0):
            v = self.lig1pdb[int(float(val))][14:19]
            self.var.set(v)
            if (self.scale.get() == 0):
                self.previous.config(state=DISABLED)
            if (self.scale.get() == len(self.lig1pdb) - 2):
                self.next.config(state="normal")
            if (self.scale.get() == 1):
                self.previous.config(state="normal")
            if (self.scale.get() == len(self.lig1pdb) - 1):
                self.next.config(state=DISABLED)
            if (self.wat.get() == 1):
                CHEWD.wsupdateview(self.entry4.get(), self.entry5.get(),
                                   self.entry6.get(), self.entry7.get(), prevz,
                                   str(self.scale.get()), self.vl.get())
            elif (self.lig.get() == 1):
                if (self.l1v.get() == 1):
                    vl = self.entry4.get()
                    hl = self.swapentry.get()
                if (self.l2v.get() == 1):
                    vl = self.swapentry.get()
                    hl = self.entry4.get()
                CHEWD.lsupdateview(vl, self.entry5.get(), self.entry6.get(),
                                   self.entry7.get(), prevz,
                                   str(self.scale.get()), hl, self.vl.get())

    def OnSelect(self, val):
        global prev
        sender = val.widget
        idx = sender.curselection()
        dis = self.lb1.get(idx)
        if (self.wat.get() == 1):
            CHEWD.wslistdisplay(self.entry4.get(), self.entry5.get(), prev,
                                dis, str(self.scale.get()), self.vl.get())
        elif (self.lig.get() == 1):
            if (self.l1v.get() == 1):
                vl = self.entry4.get()
                hl = self.swapentry.get()
            if (self.l2v.get() == 1):
                vl = self.swapentry.get()
                hl = self.entry4.get()
            CHEWD.lslistdisplay(vl, self.entry5.get(), prev, dis,
                                str(self.scale.get()), hl, self.vl.get())
        elif (self.mm.get() == 1):
            CHEWD.mmlistdisplay(self.entry4.get(), self.entry5.get(), prev,
                                dis, "0", self.vl.get())
        prev = dis

    def sortdata(self, sc):
        global dr1, dr2, dr3
        tableData1 = self.lb1.get(0, END)
        tableData2 = self.lb2.get(0, END)
        tableData3 = self.lb3.get(0, END)

        data = list()
        nv = len(tableData1)
        for x in range(nv):
            data.append([tableData1[x], tableData2[x], tableData3[x]])

        if (sc == 0):
            lab = self.b1.cget('text')
            if lab[0] == '[': self.b1.config(text=lab[4:])
            lab = self.b2.cget('text')
            if lab[0] == '[': self.b2.config(text=lab[4:])
            lab = self.b3.cget('text')
            if lab[0] == '[': self.b3.config(text=lab[4:])
            lab = self.b1.cget('text')
            if dr1 == 1: self.b1.config(text='[+] ' + lab)
            else: self.b1.config(text='[-] ' + lab)
            data.sort(key=lambda s: (s[sc]), reverse=dr1 == 1)
            dr1 = dr1 * -1
        if (sc == 1):
            lab = self.b1.cget('text')
            if lab[0] == '[': self.b1.config(text=lab[4:])
            lab = self.b2.cget('text')
            if lab[0] == '[': self.b2.config(text=lab[4:])
            lab = self.b3.cget('text')
            if lab[0] == '[': self.b3.config(text=lab[4:])
            lab = self.b2.cget('text')
            if dr2 == 1: self.b2.config(text='[+] ' + lab)
            else: self.b2.config(text='[-] ' + lab)
            data.sort(key=lambda s: (s[sc]), reverse=dr2 == 1)
            dr2 = dr2 * -1
        if (sc == 2):
            lab = self.b1.cget('text')
            if lab[0] == '[': self.b1.config(text=lab[4:])
            lab = self.b2.cget('text')
            if lab[0] == '[': self.b2.config(text=lab[4:])
            lab = self.b3.cget('text')
            if lab[0] == '[': self.b3.config(text=lab[4:])
            lab = self.b3.cget('text')
            if dr3 == 1: self.b3.config(text='[+] ' + lab)
            else: self.b3.config(text='[-] ' + lab)
            data.sort(key=lambda s: (s[sc]), reverse=dr3 == 1)
            dr3 = dr3 * -1
        nv = len(data)
        self.lb1.delete(0, 'end')
        self.lb2.delete(0, 'end')
        self.lb3.delete(0, 'end')
        for x in range(nv):
            self.lb1.insert(END, data[x][0])
            self.lb2.insert(END, data[x][1])
            self.lb3.insert(END, data[x][2])

    def onOpen(self):
        global load
        fold = tkFileDialog.askdirectory()
        self.entry1.delete(0, 'end')
        self.entry1.insert(0, fold)
        load = 0

    def onOpenMM(self):
        global load
        fold = tkFileDialog.askopenfilename()
        self.entry2.delete(0, 'end')
        self.entry2.insert(0, fold)
        load = 0

    def onOpenPDB(self):
        global load
        fold = tkFileDialog.askopenfilename()
        self.entry3.delete(0, 'end')
        self.entry3.insert(0, fold)
        load = 0

    def OnVsb(self, *args):
        self.lb1.yview(*args)
        self.lb2.yview(*args)
        self.lb3.yview(*args)

    def OnMouseWheel(self, event):
        self.lb1.yview("scroll", event.delta, "units")
        self.lb2.yview("scroll", event.delta, "units")
        self.lb3.yview("scroll", event.delta, "units")
        return "break"

    def Apply(self):
        global load, prevz
        if (load == 0):

            if (self.wat.get() == 1 or self.lig.get() == 1):
                self.changestate()
                self.base = os.listdir(self.entry1.get())
                pdb1 = list()
                for a in self.base:
                    matchObj = re.match(r'bound_mobile_\d{6}_0\.\d{5}\.pdb', a,
                                        re.M | re.I)
                    if matchObj:
                        pdb1.append(a)
                self.lig1pdb = list()
                self.lig2pdb = list()
                #print x
                x = pdb1[1][22:27]

                for a in pdb1:

                    matchObj = re.match(r'bound_mobile_\d{6}_0\.' + x + '.pdb',
                                        a, re.M | re.I)
                    if matchObj:
                        self.lig1pdb.append(a)
                    else:
                        self.lig2pdb.append(a)
                self.lig1pdb.sort()
                self.lig2pdb.sort()
                self.scale.configure(from_=0, to=len(self.lig1pdb) - 1)
                self.scale.config(state="normal")

            elif (self.mm.get() == 1):
                self.loadmmpbsaresults()
                CHEWD.mmloadpdb(self.entry3.get())
                CHEWD.mmvisualizer("0", tempfile.gettempdir(),
                                   self.entry4.get(), self.entry5.get(),
                                   self.entry6.get(), self.entry7.get(),
                                   self.vl.get())

            if (self.wat.get() == 1):
                CHEWD.wsloadallpdb(self.lig1pdb, self.entry1.get())
                self.next.config(state="normal")
                v = self.lig1pdb[0][14:19]
                self.var.set(v)
                CHEWD.wsvisualizer(str(self.scale.get()),
                                   tempfile.gettempdir(), self.entry4.get(),
                                   self.entry5.get(), self.entry6.get(),
                                   self.entry7.get(), self.vl.get())
            elif (self.lig.get() == 1):
                if (self.l1v.get() == 1):
                    vl = self.entry4.get()
                    hl = self.swapentry.get()
                if (self.l2v.get() == 1):
                    vl = self.swapentry.get()
                    hl = self.entry4.get()
                CHEWD.wsloadallpdb(self.lig1pdb, self.entry1.get())
                self.next.config(state="normal")
                v = self.lig1pdb[0][14:19]
                self.var.set(v)
                CHEWD.lsvisualizer(str(self.scale.get()),
                                   tempfile.gettempdir(), vl,
                                   self.entry5.get(), self.entry6.get(),
                                   self.entry7.get(), hl, self.vl.get())
            load = 1

        else:

            if (self.wat.get() == 1):
                self.changestate()
                CHEWD.clear(tempfile.gettempdir())
                CHEWD.loadresults(tempfile.gettempdir())
                CHEWD.wsupdateview(self.entry4.get(), self.entry5.get(),
                                   self.entry6.get(), self.entry7.get(), prevz,
                                   str(self.scale.get()), self.vl.get())
            elif (self.lig.get() == 1):
                self.changestate()
                if (self.l1v.get() == 1):
                    vl = self.entry4.get()
                    hl = self.swapentry.get()
                if (self.l2v.get() == 1):
                    vl = self.swapentry.get()
                    hl = self.entry4.get()

                CHEWD.clear(tempfile.gettempdir())
                CHEWD.loadresults(tempfile.gettempdir())
                CHEWD.lsupdateview(vl, self.entry5.get(), self.entry6.get(),
                                   self.entry7.get(), prevz,
                                   str(self.scale.get()), hl, self.vl.get())
            elif (self.mm.get() == 1):
                CHEWD.mmupdateview(self.entry4.get(), self.entry5.get(),
                                   self.entry6.get(), self.entry7.get(), prevz,
                                   "0", self.vl.get())
        prevz = self.entry5.get()
コード例 #14
0
    def setCard(self,cardnum,row,col):
        dodel = False
        if cardnum == -1:
            dodel = True
            cardnum = 1
        card = Card(cardnum)
        f = Frame(self, height = card.height, width = card.width)
        if (row == 2 and self.client.player == 'p1') or (row == 3 and self.client.player == 'p2'):
            f.config(height = card.height+20)
        if self.client.player == 'p1':
            f.grid(row=row+1, column=col)
        else:
            f.grid(row=6-row, column=NUM_COLS-col)
        f.pack_propagate(0)

        self.fgrid[row][col] = f
        
        pic = Label(f)
        if row <= 2:
            card.flip()
        if self.client.player == 'p2':
            card.flip()
        pic.config(image=card.img)
        pic.image = card.img
        pic.row = row
        pic.col = col
        pic.card = card
        
        def clicked(pic,ins,card):
            if ins.state == 'taking' and not pic.isNone:
                if pic.card.number == ins.activeCard:
                    endTime = time.time()
                    ins.delta = round(endTime-self.startTime,2)
                    print(ins.delta)
                    print("Got in "+str(ins.delta))
                    ins.client.sendMessage('took,'+str(ins.delta)+','+str(ins.faultCount))
                    if not ins.multiplayer:
                        ins.client.oppSendMessage('p2,took,20,0')
                    ins.changeState('waiting')

                    pic.pack_forget()
                    ins.model[pic.row][pic.col].isNone = True
                elif ins.activeCardRow == -1 or not (pic.row <= 2) == (ins.activeCardRow <= 2):
                    ins.faults[int(pic.row <= 2)] = 1
                    ins.faultCount = sum(ins.faults)
            elif ins.state == 'move-select-start':
                ins.movingPic = (pic.row, pic.col)
                print('moving card:')
                print(ins.movingPic)
                if (((self.client.player == 'p1' and pic.row > 2) or (self.client.player == 'p2' and pic.row <= 2))\
                    and not pic.isNone) or not ins.multiplayer:
                    ins.infoLabel.config(text="Card chosen. Select destination.")
                    ins.changeState('move-select-stop')

                else:
                    ins.infoLabel.config(text="Can't move that. Select a different card to move.")
                ins.moveButton.config(text="Cancel")

            elif ins.state == 'move-select-stop':
                print('to:')
                print((pic.row, pic.col))
                if ((self.client.player == 'p1' and pic.row <= 2) or (self.client.player == 'p2' and pic.row > 2))\
                    and not pic.isNone:
                    ins.infoLabel.config(text="Illegal move. Select a different card to move.")
                else:
                    ins.swapCards(self.movingPic,(pic.row, pic.col))
                    ins.infoLabel.config(text="Move completed. Select next card.")

                ins.changeState('move-select-start')




        
        f.bind("<Button-1>",lambda e,pic=pic,self=self,card=card:clicked(pic,self,card))
        pic.bind("<Button-1>",lambda e,pic=pic,self=self,card=card:clicked(pic,self,card))
        pic.pack(fill=BOTH)
        self.model[row][col] = pic

        if dodel:
            pic.pack_forget()
            self.model[row][col].isNone = True

        else:
            self.model[row][col].isNone = False
コード例 #15
0
class window_if(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent)
        self.parent = parent
        self.init_variables()
        self.initUI()

    def initUI(self):
        self.parent.title("Neural network 1-3-1")
        self.grid_configure(ipadx=30)
        self.columnconfigure(0, pad=20)
        self.columnconfigure(1, pad=20)
        self.columnconfigure(2, pad=20)
        self.columnconfigure(3, pad=20)

        self.rowconfigure(0, pad=20)
        self.rowconfigure(1, pad=20)
        self.rowconfigure(2, pad=20)
        self.rowconfigure(3, pad=20)
        self.rowconfigure(4, pad=20)
        self.rowconfigure(5, pad=20)
        self.rowconfigure(6, pad=20)
        self.rowconfigure(7, pad=20)
        self.rowconfigure(8, pad=20)
        self.rowconfigure(8, pad=20)
        self.rowconfigure(9, pad=20)
        self.rowconfigure(10, pad=20)

        self.rowconfigure(11, pad=20)
        self.rowconfigure(12, pad=20)
        self.rowconfigure(13, pad=20)
        self.rowconfigure(14, pad=20)
        self.rowconfigure(15, pad=20)
        self.rowconfigure(16, pad=20)
        self.rowconfigure(17, pad=20)
        self.rowconfigure(18, pad=20)
        self.rowconfigure(19, pad=20)
        self.rowconfigure(20, pad=20)

        self.organize_labels()
        self.menu = self.create_manu_bar()
        self.plot_button = self.create_button("START", self.make_plots,
                                              20).grid(row=18,
                                                       column=1,
                                                       sticky=W)

    def organize_labels(self):
        print 'organize_labels'
        self.L0LBL0 = Label(text="L0", width=10)
        self.L0LBL0.grid(row=0, column=0, sticky=W)
        self.L0LBL1 = Label(text="waga N1", width=10)
        self.L0LBL1.grid(row=1, column=0, sticky=W)
        self.L0wage = Entry()
        self.L0wage.insert(0, "0.893")
        self.L0wage.grid(row=1, column=1, sticky=W)
        self.L0LBL2 = Label(text="bias N1", width=10)
        self.L0LBL2.grid(row=2, column=0, sticky=W)
        self.L0BIAS = Entry()
        self.L0BIAS.insert(0, "0.738")
        self.L0BIAS.grid(row=2, column=1, sticky=W)

        self.L1LBL0 = Label(text="L1", width=10)
        self.L1LBL0.grid(row=3, column=0, sticky=W)
        self.L1LBL1 = Label(text="waga N2", width=10)
        self.L1LBL1.grid(row=4, column=0, sticky=W)
        self.L1wage1 = Entry()
        self.L1wage1.insert(0, "0.057")
        self.L1wage1.grid(row=4, column=1, sticky=W)
        self.L1LBL2 = Label(text="bias N2", width=10)
        self.L1LBL2.grid(row=5, column=0, sticky=W)
        self.L1BIAS1 = Entry()
        self.L1BIAS1.insert(0, "0.176")
        self.L1BIAS1.grid(row=5, column=1, sticky=W)

        self.L1LBL3 = Label(text="waga N3", width=10)
        self.L1LBL3.grid(row=6, column=0, sticky=W)
        self.L1wage2 = Entry()
        self.L1wage2.insert(0, "0.352")
        self.L1wage2.grid(row=6, column=1, sticky=W)
        self.L1LBL4 = Label(text="bias N3", width=10)
        self.L1LBL4.grid(row=7, column=0, sticky=W)
        self.L1BIAS2 = Entry()
        self.L1BIAS2.insert(0, "0.405")
        self.L1BIAS2.grid(row=7, column=1, sticky=W)

        self.L1LBL5 = Label(text="waga N4", width=10)
        self.L1LBL5.grid(row=8, column=0, sticky=W)
        self.L1wage3 = Entry()
        self.L1wage3.insert(0, "0.813")
        self.L1wage3.grid(row=8, column=1, sticky=W)
        self.L1LBL6 = Label(text="bias N4", width=10)
        self.L1LBL6.grid(row=9, column=0, sticky=W)
        self.L1BIAS3 = Entry()
        self.L1BIAS3.insert(0, "0.935")
        self.L1BIAS3.grid(row=9, column=1, sticky=W)

        self.L2LBL7 = Label(text="L3", width=10)
        self.L2LBL7.grid(row=10, column=0, sticky=W)
        self.L2LBL8 = Label(text="waga[1] N5", width=10)
        self.L2LBL8.grid(row=11, column=0, sticky=W)
        self.L2wage1 = Entry()
        self.L2wage1.insert(0, "0.009")
        self.L2wage1.grid(row=11, column=1, sticky=W)
        self.L2LBL9 = Label(text="waga[2] N5", width=10)
        self.L2LBL9.grid(row=12, column=0, sticky=W)
        self.L2wage2 = Entry()
        self.L2wage2.insert(0, "0.138")
        self.L2wage2.grid(row=12, column=1, sticky=W)
        self.L2LBL10 = Label(text="waga[3] N5", width=10)
        self.L2LBL10.grid(row=13, column=0, sticky=W)
        self.L2wage3 = Entry()
        self.L2wage3.insert(0, "0.202")
        self.L2wage3.grid(row=13, column=1, sticky=W)
        self.L2LBL11 = Label(text="bias N5", width=10)
        self.L2LBL11.grid(row=14, column=0, sticky=W)
        self.L2BIAS = Entry()
        self.L2BIAS.insert(0, "0.410")
        self.L2BIAS.grid(row=14, column=1, sticky=W)

        self.EpochLbl = Label(text="EPOCH NR", width=10)
        self.EpochLbl.grid(row=15, column=0, sticky=W)
        self.Epoch = Entry()
        self.Epoch.insert(0, "600")
        self.Epoch.grid(row=15, column=1, sticky=W)
        self.LearnLbl = Label(text="COEFF", width=10)
        self.LearnLbl.grid(row=16, column=0, sticky=W)
        self.Learn = Entry()
        self.Learn.insert(0, "0.9")
        self.Learn.grid(row=16, column=1, sticky=W)

        self.LBL = Label(text="                 ", width=20)
        self.LBL.grid(row=17, column=0, sticky=W)
        self.LBL = Label(text="WAITING FOR INPUT", width=20)
        self.LBL.grid(row=18, column=0, sticky=W)

    def organize_learned_labels(self):
        self.ldesc = Label(text="", width=20)
        self.ldesc.grid(row=0, column=2, sticky=W)

        self.lL0w0 = Label(text="", width=20)
        self.lL0w0.grid(row=1, column=2, sticky=W)
        self.lL0b = Label(text="", width=20)
        self.lL0b.grid(row=2, column=2, sticky=W)

        self.lL1w1 = Label(text="", width=20)
        self.lL1w1.grid(row=4, column=2, sticky=W)
        self.lL1b1 = Label(text="", width=20)
        self.lL1b1.grid(row=5, column=2, sticky=W)

        self.lL1w2 = Label(text="", width=20)
        self.lL1w2.grid(row=6, column=2, sticky=W)
        self.lL1b2 = Label(text="", width=20)
        self.lL1b2.grid(row=7, column=2, sticky=W)

        self.lL1w3 = Label(text="", width=20)
        self.lL1w3.grid(row=8, column=2, sticky=W)
        self.lL1b3 = Label(text="", width=20)
        self.lL1b3.grid(row=9, column=2, sticky=W)

        self.lL2w1 = Label(text="", width=20)
        self.lL2w1.grid(row=11, column=2, sticky=W)
        self.lL2w2 = Label(text="", width=20)
        self.lL2w2.grid(row=12, column=2, sticky=W)
        self.lL2w3 = Label(text="", width=20)
        self.lL2w3.grid(row=13, column=2, sticky=W)
        self.lL2b = Label(text="", width=20)
        self.lL2b.grid(row=14, column=2, sticky=W)

    def create_manu_bar(self):
        menubar = Menu(self.parent)
        file_menu = Menu(menubar)
        file_menu.add_command(label='Teaching data',
                              command=self.choose_data_path)
        file_menu.add_separator()
        file_menu.add_command(label='Exit', command=self.onExit)
        menubar.add_cascade(label="File", menu=file_menu)
        self.parent.config(menu=menubar)

    def create_button(self, name, function, wdt):
        button = Button(text=name, command=function, width=wdt)
        return button

    def init_variables(self):
        print 'init_variables'
        self.teaching_vector_path = ""
        self.teaching_vector = list()
        self.teaching_vector.append(list())
        self.teaching_vector.append(list())
        self.figure = 1

    def choose_data_path(self):
        self.teaching_vector_path = tkFileDialog.askopenfilename()
        print self.teaching_vector_path
        self.read_teaching_vector()

    def check_input(self):
        try:
            self.L0w = float(self.L0wage.get())
        except ValueError:
            tkMessageBox.showinfo("Wrong Input", "L1 N1 wage is not a float")
            return 1

        try:
            self.L0b = float(self.L0BIAS.get())
        except ValueError:
            tkMessageBox.showinfo("Wrong Input", "L1 N1 BIAS is not a float")
            return 1
        #
        try:
            self.L1w1 = float(self.L1wage1.get())
        except ValueError:
            tkMessageBox.showinfo("Wrong Input", "L2 N2 wage is not a float")
            return 1

        try:
            self.L1b1 = float(self.L1BIAS1.get())
        except ValueError:
            tkMessageBox.showinfo("Wrong Input", "L2 N2 BIAS is not a float")
            return 1

        try:
            self.L1w2 = float(self.L1wage2.get())
        except ValueError:
            tkMessageBox.showinfo("Wrong Input", "L2 N2 wage is not a float")
            return 1

        try:
            self.L1b2 = float(self.L1BIAS2.get())
        except ValueError:
            tkMessageBox.showinfo("Wrong Input", "L2 N3 BIAS is not a float")
            return 1

        try:
            self.L1w3 = float(self.L1wage3.get())
        except ValueError:
            tkMessageBox.showinfo("Wrong Input", "L2 N4 wage is not a float")
            return 1

        try:
            self.L1b3 = float(self.L1BIAS3.get())
        except ValueError:
            tkMessageBox.showinfo("Wrong Input", "L2 N4 BIAS is not a float")
            return 1

        ##
        try:
            self.L2w1 = float(self.L2wage1.get())
        except ValueError:
            tkMessageBox.showinfo("Wrong Input", "L3 N5 wage1 is not a float")
            return 1
        try:
            self.L2w2 = float(self.L2wage2.get())
        except ValueError:
            tkMessageBox.showinfo("Wrong Input", "L3 N5 wage2 is not a float")
            return 1
        try:
            self.L2w3 = float(self.L2wage3.get())
        except ValueError:
            tkMessageBox.showinfo("Wrong Input", "L3 N5 wage3 is not a float")
            return 1
        try:
            self.L2b = float(self.L2BIAS.get())
        except ValueError:
            tkMessageBox.showinfo("Wrong Input", "L3 N5 BIAS is not a float")
            return 1
        try:
            self.coeff = float(self.Learn.get())
        except ValueError:
            tkMessageBox.showinfo("Wrong Input", "COEFF is not a float")
            return 1

        try:
            self.epo = float(self.Epoch.get())
        except ValueError:
            tkMessageBox.showinfo("Wrong Input", "EPOCH is not a float")
            return 1

        return 0

    def read_teaching_vector(self):
        self.teaching_vector[1] = []
        self.teaching_vector[0] = []
        print "read_teaching_vector"
        f = open(self.teaching_vector_path)
        teaching_vec = f.readlines()
        for i in range(len(teaching_vec)):
            [samp, val] = teaching_vec[i].split()
            self.teaching_vector[0].append(float(samp))
            self.teaching_vector[1].append(float(val))
        f.close()
        print self.teaching_vector[0]
        print self.teaching_vector[1]

    def create_network(self):
        if (len(self.teaching_vector[0]) != len(self.teaching_vector[1])):
            print "len(self.teaching_vector[0]): " + str(
                len(self.teaching_vector[0]))
            print "len(self.teaching_vector[1]): " + str(
                len(self.teaching_vector[1]))
            tkMessageBox.showinfo("Wrong Input",
                                  "Teaching vector has wrong size")
            return -1

        if (len(self.teaching_vector[0]) == 0
                or len(self.teaching_vector[1]) == 0):
            tkMessageBox.showinfo("Wrong Input",
                                  "Please provide teaching vector")
            return -1

        siec = neu_net.neu_net(3, self.teaching_vector[0],
                               self.teaching_vector[1], self.coeff, self.epo)
        siec.initialize_layer(0, 1, 1, 3)
        siec.initialize_perceptron(0, 0, [self.L0w], self.L0b)
        siec.print_info(0)
        siec.initialize_layer(1, 3, 1, 1)
        siec.initialize_perceptron(1, 0, [self.L1w1], self.L1b1)
        siec.initialize_perceptron(1, 1, [self.L1w2], self.L1b2)
        siec.initialize_perceptron(1, 2, [self.L1w3], self.L1b3)
        siec.print_info(1)
        siec.initialize_layer(2, 1, 3, 1)
        siec.initialize_perceptron(2, 0, [self.L2w1, self.L2w2, self.L2w3],
                                   self.L2b)
        siec.print_info(2)
        return siec

    def make_plots(self):
        self.organize_learned_labels()
        print "make_plots"
        ret = self.check_input()
        if ret:
            print "Wrong input please correct it"
            return -1
        else:
            print "Next step: creating neural network"

        siec = self.create_network()
        if siec == 1:
            print "Network was not created"
            return -1
        else:
            print "Next step: learning and plotting"

        self.LBL.config(text="TEACHING")
        self.LBL.update_idletasks()
        siec.teach_network()

        self.LBL.config(text="RUNNING NET")
        self.LBL.update_idletasks()
        siec.start_net(self.teaching_vector[0])
        plt.figure(self.figure)
        plt.plot(self.teaching_vector[0],
                 siec.out_teached,
                 'r',
                 label='siec neuronowa')
        plt.plot(self.teaching_vector[0],
                 self.teaching_vector[1],
                 'b',
                 label='wektor uczacy')
        plt.ylabel("Wartosc funkcji")
        plt.xlabel("Argument")
        plt.legend()
        plt.grid()
        self.figure += 1
        plt.figure(self.figure)
        plt.plot(siec.epoch_n, siec.err_ep, 'r')
        plt.ylabel("Wartosc bledu")
        plt.xlabel("Epoka uczaca")
        plt.grid()
        self.figure += 1
        self.LBL.config(text="DONE")
        self.LBL.update_idletasks()
        self.read_learned_values(siec)
        plt.show()

    def read_learned_values(self, lsiec):
        self.ldesc.config(text="Learned")
        self.ldesc.update_idletasks()

        self.lL0w0.config(text=str(lsiec.layers[0][0].wages[0]))
        self.lL0w0.update_idletasks()
        self.lL0b.config(text=str(lsiec.layers[0][0].bias))
        self.lL0b.update_idletasks()

        self.lL1w1.config(text=str(lsiec.layers[1][0].wages[0]))
        self.lL1w1.update_idletasks()
        self.lL1b1.config(text=str(lsiec.layers[1][0].bias))
        self.lL1b1.update_idletasks()

        self.lL1w2.config(text=str(lsiec.layers[1][1].wages[0]))
        self.lL1w2.update_idletasks()
        self.lL1b2.config(text=str(lsiec.layers[1][1].bias))
        self.lL1b2.update_idletasks()

        self.lL1w3.config(text=str(lsiec.layers[1][2].wages[0]))
        self.lL1w3.update_idletasks()
        self.lL1b3.config(text=str(lsiec.layers[1][2].bias))
        self.lL1b3.update_idletasks()

        self.lL2w1.config(text=str(lsiec.layers[2][0].wages[0]))
        self.lL2w1.update_idletasks()
        self.lL2w2.config(text=str(lsiec.layers[2][0].wages[1]))
        self.lL2w2.update_idletasks()
        self.lL2w3.config(text=str(lsiec.layers[2][0].wages[2]))
        self.lL2w3.update_idletasks()
        self.lL2b.config(text=str(lsiec.layers[2][0].bias))
        self.lL2b.update_idletasks()

    def onExit(self):
        self.quit()

    def onClick(self):
        if self.phase_plot.get() == True:
            self.parent.title("Phase plot will be made")
        elif self.phase_plot.get() == False:
            self.parent.title("Ni ma")
コード例 #16
0
    def initUI(self):

        self.parent.title("Append Data")
        self.pack(fill=BOTH, expand=True)
        labelfont20 = ('Roboto', 15, 'bold')
        labelfont10 = ('Roboto', 10, 'bold')
        labelfont8 = ('Roboto', 8, 'bold')

        frame0 = Frame(self)
        frame0.pack()

        lbl0 = Label(frame0, text="Hi Nakul")
        lbl0.config(font=labelfont20)
        lbl0.pack(padx=5, pady=5)
        lbl00 = Label(frame0, text="Fill the data here")
        lbl00.config(font=labelfont10)
        lbl00.pack(padx=5, pady=5)

        ####################################
        frame1 = Frame(self)
        frame1.pack()
        frame1.place(x=50, y=100)

        lbl1 = Label(frame1, text="Name", width=15)
        lbl1.pack(side=LEFT, padx=7, pady=5)

        self.entry1 = Entry(frame1, width=20)
        self.entry1.pack(padx=5, expand=True)

        ####################################
        frame2 = Frame(self)
        frame2.pack()
        frame2.place(x=50, y=130)

        lbl2 = Label(frame2, text="F Name", width=15)
        lbl2.pack(side=LEFT, padx=7, pady=5)

        self.entry2 = Entry(frame2)
        self.entry2.pack(fill=X, padx=5, expand=True)

        ######################################
        frame3 = Frame(self)
        frame3.pack()
        frame3.place(x=50, y=160)

        lbl3 = Label(frame3, text="DOB(D/M/Y)", width=15)
        lbl3.pack(side=LEFT, padx=7, pady=5)

        self.entry3 = Entry(frame3)
        self.entry3.pack(fill=X, padx=5, expand=True)

        #######################################
        frame4 = Frame(self)
        frame4.pack()
        frame4.place(x=50, y=190)

        lbl4 = Label(frame4, text="Medium(H/E)", width=15)
        lbl4.pack(side=LEFT, padx=7, pady=5)

        self.entry4 = Entry(frame4)
        self.entry4.pack(fill=X, padx=5, expand=True)

        ##########################################
        frame5 = Frame(self)
        frame5.pack()
        frame5.place(x=50, y=225)
        MODES = [
            ("M", "Male"),
            ("F", "Female"),
        ]
        lbl5 = Label(frame5, text="Gender", width=15)
        lbl5.pack(side=LEFT, padx=7, pady=5)

        global v
        v = StringVar()
        v.set("Male")  # initialize

        for text, mode in MODES:
            b = Radiobutton(frame5, text=text, variable=v, value=mode)
            b.pack(side=LEFT, padx=10)

        ############################################
        #####printing line
        lbl5a = Label(
            text="___________________________________________________")
        lbl5a.pack()
        lbl5a.place(x=45, y=255)

        ############################################
        frame6 = Frame(self)
        frame6.pack()
        frame6.place(x=50, y=290)

        lbl6 = Label(frame6, text="Phone No:", width=15)
        lbl6.pack(side=LEFT, padx=7, pady=5)

        self.entry6 = Entry(frame6)
        self.entry6.pack(fill=X, padx=5, expand=True)

        ################################################

        frame7 = Frame(self)
        frame7.pack()
        frame7.place(x=50, y=320)

        lbl7 = Label(frame7, text="Landline No:", width=15)
        lbl7.pack(side=LEFT, padx=7, pady=5)

        self.entry7 = Entry(frame7)
        self.entry7.pack(fill=X, padx=5, expand=True)

        ###############################################
        frame8 = Frame(self)
        frame8.pack()
        frame8.place(x=50, y=350)

        lbl8 = Label(frame8, text="Email:", width=15)
        lbl8.pack(side=LEFT, padx=7, pady=5)

        self.entry8 = Entry(frame8)
        self.entry8.pack(fill=X, padx=5, expand=True)

        #############################################
        frame9 = Frame(self)
        frame9.pack()
        frame9.place(x=50, y=380)

        lbl9 = Label(frame9, text="HomeTown:", width=15)
        lbl9.pack(side=LEFT, padx=7, pady=5)

        self.entry9 = Entry(frame9)
        self.entry9.pack(fill=X, padx=5, expand=True)

        ###############################################
        frame10 = Frame(self)
        frame10.pack()
        frame10.place(x=60, y=415)

        lbl10 = Label(frame10, text="Address:")
        lbl10.pack(padx=5, pady=5)

        self.entry10 = Text(frame10, height=5, width=28)
        self.entry10.pack(padx=5, expand=True)

        ##############################################

        #############################################

        frame11 = Frame(self)
        frame11.pack()
        frame11.place(x=350, y=100)

        lbl11x = Label(frame11, text="_______Class 10th Data_______")
        lbl11x.pack(padx=0, pady=0)

        lbl11 = Label(text="%", width=15)
        lbl11.pack(side=LEFT, padx=0, pady=0)
        lbl11.place(x=350, y=130)

        self.entry11 = Entry(width=12)
        self.entry11.pack(padx=1, expand=True)
        self.entry11.place(x=420, y=130)

        lbl11a = Label(text="Passing Year", width=15)
        lbl11a.pack(padx=0, pady=2)
        lbl11a.place(x=350, y=160)

        self.entry11a = Entry(width=12)
        self.entry11a.pack(padx=1, expand=True)
        self.entry11a.place(x=420, y=160)

        lbl11b = Label(text="Board Name", width=15)
        lbl11b.pack(padx=0, pady=2)
        lbl11b.place(x=350, y=190)

        self.entry11b = Entry(width=12)
        self.entry11b.pack(padx=1, expand=True)
        self.entry11b.place(x=420, y=190)

        ####################################################
        frame12 = Frame(self)
        frame12.pack()
        frame12.place(x=510, y=100)

        lbl12x = Label(frame12, text="_______Class 12th Data_______")
        lbl12x.pack(padx=0, pady=0)

        lbl12 = Label(text="%", width=15)
        lbl12.pack(side=LEFT, padx=0, pady=0)
        lbl12.place(x=510, y=130)

        self.entry12 = Entry(width=12)
        self.entry12.pack(padx=1, expand=True)
        self.entry12.place(x=580, y=130)

        lbl12a = Label(text="Passing Year", width=15)
        lbl12a.pack(padx=0, pady=2)
        lbl12a.place(x=510, y=160)

        self.entry12a = Entry(width=12)
        self.entry12a.pack(padx=1, expand=True)
        self.entry12a.place(x=580, y=160)

        lbl12b = Label(text="Board Name", width=15)
        lbl12b.pack(padx=0, pady=2)
        lbl12b.place(x=510, y=190)

        self.entry12b = Entry(width=12)
        self.entry12b.pack(padx=1, expand=True)
        self.entry12b.place(x=580, y=190)

        #####################################################
        frame13 = Frame(self)
        frame13.pack()
        frame13.place(x=670, y=100)

        lbl13x = Label(frame13, text="________B.Tech Data_________")
        lbl13x.pack(padx=0, pady=0)

        lbl13 = Label(text="%", width=15)
        lbl13.pack(side=LEFT, padx=0, pady=0)
        lbl13.place(x=670, y=130)

        self.entry13 = Entry(width=12)
        self.entry13.pack(padx=1, expand=True)
        self.entry13.place(x=740, y=130)

        lbl13a = Label(text="Passing Year", width=15)
        lbl13a.pack(padx=0, pady=2)
        lbl13a.place(x=670, y=160)

        self.entry13a = Entry(width=12)
        self.entry13a.pack(padx=1, expand=True)
        self.entry13a.place(x=740, y=160)

        lbl13b = Label(text="College", width=15)
        lbl13b.pack(padx=0, pady=2)
        lbl13b.place(x=670, y=190)

        self.entry13b = Entry(width=12)
        self.entry13b.pack(padx=1, expand=True)
        self.entry13b.place(x=740, y=190)

        ####################################################

        frame14 = Frame(self)
        frame14.pack()
        frame14.place(x=380, y=255)

        lbl14 = Label(frame14, text="Any Other Info:")
        lbl14.pack(padx=5, pady=5)

        self.entry14 = Text(frame14, height=5, width=28)
        self.entry14.pack(padx=5, expand=True)

        frame15 = Frame(self)
        frame15.pack()
        frame15.place(x=650, y=290)

        openButton = Button(frame15,
                            text="Attatch Resume",
                            width=15,
                            command=self.openResume)
        openButton.pack(padx=5, pady=5)
        self.entry15 = Entry(frame15)
        self.entry15.pack(fill=X, padx=4, expand=True)
        #############################################################
        frame16 = Frame(self)
        frame16.pack()
        frame16.place(x=450, y=500)

        closeButton = Button(frame16,
                             text="SUBMIT",
                             width=35,
                             command=self.getDatax)
        closeButton.pack(padx=5, pady=5)

        #######################################
        framexxx = Frame(self)
        framexxx.pack()
        framexxx.place(x=700, y=600)
        self.xxx = Label(framexxx, text="Recent Changes Will Appear Here")
        self.xxx.config(font=labelfont8)
        self.xxx.pack()

        #######################################

        frame000 = Frame(self)
        frame000.pack()
        frame000.place(x=50, y=600)

        self.lbl000 = Label(frame000,
                            text="Beta/Sample2.0 | (c) Nakul Rathore")
        self.lbl000.config(font=labelfont8)
        self.lbl000.pack(padx=5, pady=5)
コード例 #17
0
class Example(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent)

        self.parent = parent

        self.initUI()

    def initUI(self):

        self.parent.title("Append Data")
        self.pack(fill=BOTH, expand=True)
        labelfont20 = ('Roboto', 15, 'bold')
        labelfont10 = ('Roboto', 10, 'bold')
        labelfont8 = ('Roboto', 8, 'bold')

        frame0 = Frame(self)
        frame0.pack()

        lbl0 = Label(frame0, text="Hi Nakul")
        lbl0.config(font=labelfont20)
        lbl0.pack(padx=5, pady=5)
        lbl00 = Label(frame0, text="Fill the data here")
        lbl00.config(font=labelfont10)
        lbl00.pack(padx=5, pady=5)

        ####################################
        frame1 = Frame(self)
        frame1.pack()
        frame1.place(x=50, y=100)

        lbl1 = Label(frame1, text="Name", width=15)
        lbl1.pack(side=LEFT, padx=7, pady=5)

        self.entry1 = Entry(frame1, width=20)
        self.entry1.pack(padx=5, expand=True)

        ####################################
        frame2 = Frame(self)
        frame2.pack()
        frame2.place(x=50, y=130)

        lbl2 = Label(frame2, text="F Name", width=15)
        lbl2.pack(side=LEFT, padx=7, pady=5)

        self.entry2 = Entry(frame2)
        self.entry2.pack(fill=X, padx=5, expand=True)

        ######################################
        frame3 = Frame(self)
        frame3.pack()
        frame3.place(x=50, y=160)

        lbl3 = Label(frame3, text="DOB(D/M/Y)", width=15)
        lbl3.pack(side=LEFT, padx=7, pady=5)

        self.entry3 = Entry(frame3)
        self.entry3.pack(fill=X, padx=5, expand=True)

        #######################################
        frame4 = Frame(self)
        frame4.pack()
        frame4.place(x=50, y=190)

        lbl4 = Label(frame4, text="Medium(H/E)", width=15)
        lbl4.pack(side=LEFT, padx=7, pady=5)

        self.entry4 = Entry(frame4)
        self.entry4.pack(fill=X, padx=5, expand=True)

        ##########################################
        frame5 = Frame(self)
        frame5.pack()
        frame5.place(x=50, y=225)
        MODES = [
            ("M", "Male"),
            ("F", "Female"),
        ]
        lbl5 = Label(frame5, text="Gender", width=15)
        lbl5.pack(side=LEFT, padx=7, pady=5)

        global v
        v = StringVar()
        v.set("Male")  # initialize

        for text, mode in MODES:
            b = Radiobutton(frame5, text=text, variable=v, value=mode)
            b.pack(side=LEFT, padx=10)

        ############################################
        #####printing line
        lbl5a = Label(
            text="___________________________________________________")
        lbl5a.pack()
        lbl5a.place(x=45, y=255)

        ############################################
        frame6 = Frame(self)
        frame6.pack()
        frame6.place(x=50, y=290)

        lbl6 = Label(frame6, text="Phone No:", width=15)
        lbl6.pack(side=LEFT, padx=7, pady=5)

        self.entry6 = Entry(frame6)
        self.entry6.pack(fill=X, padx=5, expand=True)

        ################################################

        frame7 = Frame(self)
        frame7.pack()
        frame7.place(x=50, y=320)

        lbl7 = Label(frame7, text="Landline No:", width=15)
        lbl7.pack(side=LEFT, padx=7, pady=5)

        self.entry7 = Entry(frame7)
        self.entry7.pack(fill=X, padx=5, expand=True)

        ###############################################
        frame8 = Frame(self)
        frame8.pack()
        frame8.place(x=50, y=350)

        lbl8 = Label(frame8, text="Email:", width=15)
        lbl8.pack(side=LEFT, padx=7, pady=5)

        self.entry8 = Entry(frame8)
        self.entry8.pack(fill=X, padx=5, expand=True)

        #############################################
        frame9 = Frame(self)
        frame9.pack()
        frame9.place(x=50, y=380)

        lbl9 = Label(frame9, text="HomeTown:", width=15)
        lbl9.pack(side=LEFT, padx=7, pady=5)

        self.entry9 = Entry(frame9)
        self.entry9.pack(fill=X, padx=5, expand=True)

        ###############################################
        frame10 = Frame(self)
        frame10.pack()
        frame10.place(x=60, y=415)

        lbl10 = Label(frame10, text="Address:")
        lbl10.pack(padx=5, pady=5)

        self.entry10 = Text(frame10, height=5, width=28)
        self.entry10.pack(padx=5, expand=True)

        ##############################################

        #############################################

        frame11 = Frame(self)
        frame11.pack()
        frame11.place(x=350, y=100)

        lbl11x = Label(frame11, text="_______Class 10th Data_______")
        lbl11x.pack(padx=0, pady=0)

        lbl11 = Label(text="%", width=15)
        lbl11.pack(side=LEFT, padx=0, pady=0)
        lbl11.place(x=350, y=130)

        self.entry11 = Entry(width=12)
        self.entry11.pack(padx=1, expand=True)
        self.entry11.place(x=420, y=130)

        lbl11a = Label(text="Passing Year", width=15)
        lbl11a.pack(padx=0, pady=2)
        lbl11a.place(x=350, y=160)

        self.entry11a = Entry(width=12)
        self.entry11a.pack(padx=1, expand=True)
        self.entry11a.place(x=420, y=160)

        lbl11b = Label(text="Board Name", width=15)
        lbl11b.pack(padx=0, pady=2)
        lbl11b.place(x=350, y=190)

        self.entry11b = Entry(width=12)
        self.entry11b.pack(padx=1, expand=True)
        self.entry11b.place(x=420, y=190)

        ####################################################
        frame12 = Frame(self)
        frame12.pack()
        frame12.place(x=510, y=100)

        lbl12x = Label(frame12, text="_______Class 12th Data_______")
        lbl12x.pack(padx=0, pady=0)

        lbl12 = Label(text="%", width=15)
        lbl12.pack(side=LEFT, padx=0, pady=0)
        lbl12.place(x=510, y=130)

        self.entry12 = Entry(width=12)
        self.entry12.pack(padx=1, expand=True)
        self.entry12.place(x=580, y=130)

        lbl12a = Label(text="Passing Year", width=15)
        lbl12a.pack(padx=0, pady=2)
        lbl12a.place(x=510, y=160)

        self.entry12a = Entry(width=12)
        self.entry12a.pack(padx=1, expand=True)
        self.entry12a.place(x=580, y=160)

        lbl12b = Label(text="Board Name", width=15)
        lbl12b.pack(padx=0, pady=2)
        lbl12b.place(x=510, y=190)

        self.entry12b = Entry(width=12)
        self.entry12b.pack(padx=1, expand=True)
        self.entry12b.place(x=580, y=190)

        #####################################################
        frame13 = Frame(self)
        frame13.pack()
        frame13.place(x=670, y=100)

        lbl13x = Label(frame13, text="________B.Tech Data_________")
        lbl13x.pack(padx=0, pady=0)

        lbl13 = Label(text="%", width=15)
        lbl13.pack(side=LEFT, padx=0, pady=0)
        lbl13.place(x=670, y=130)

        self.entry13 = Entry(width=12)
        self.entry13.pack(padx=1, expand=True)
        self.entry13.place(x=740, y=130)

        lbl13a = Label(text="Passing Year", width=15)
        lbl13a.pack(padx=0, pady=2)
        lbl13a.place(x=670, y=160)

        self.entry13a = Entry(width=12)
        self.entry13a.pack(padx=1, expand=True)
        self.entry13a.place(x=740, y=160)

        lbl13b = Label(text="College", width=15)
        lbl13b.pack(padx=0, pady=2)
        lbl13b.place(x=670, y=190)

        self.entry13b = Entry(width=12)
        self.entry13b.pack(padx=1, expand=True)
        self.entry13b.place(x=740, y=190)

        ####################################################

        frame14 = Frame(self)
        frame14.pack()
        frame14.place(x=380, y=255)

        lbl14 = Label(frame14, text="Any Other Info:")
        lbl14.pack(padx=5, pady=5)

        self.entry14 = Text(frame14, height=5, width=28)
        self.entry14.pack(padx=5, expand=True)

        frame15 = Frame(self)
        frame15.pack()
        frame15.place(x=650, y=290)

        openButton = Button(frame15,
                            text="Attatch Resume",
                            width=15,
                            command=self.openResume)
        openButton.pack(padx=5, pady=5)
        self.entry15 = Entry(frame15)
        self.entry15.pack(fill=X, padx=4, expand=True)
        #############################################################
        frame16 = Frame(self)
        frame16.pack()
        frame16.place(x=450, y=500)

        closeButton = Button(frame16,
                             text="SUBMIT",
                             width=35,
                             command=self.getDatax)
        closeButton.pack(padx=5, pady=5)

        #######################################
        framexxx = Frame(self)
        framexxx.pack()
        framexxx.place(x=700, y=600)
        self.xxx = Label(framexxx, text="Recent Changes Will Appear Here")
        self.xxx.config(font=labelfont8)
        self.xxx.pack()

        #######################################

        frame000 = Frame(self)
        frame000.pack()
        frame000.place(x=50, y=600)

        self.lbl000 = Label(frame000,
                            text="Beta/Sample2.0 | (c) Nakul Rathore")
        self.lbl000.config(font=labelfont8)
        self.lbl000.pack(padx=5, pady=5)

    def openResume(self):
        ftypes = [('All files', '*')]
        dlg = tkFileDialog.Open(self, filetypes=ftypes, initialdir='C:/Users/')
        global x15
        fl = dlg.show()
        #file name
        x15 = fl
        temp1 = os.path.basename(fl)
        global temp2
        temp2 = os.path.splitext(temp1)[0]

        self.entry15.delete(0, 'end')
        self.entry15.insert(0, temp2)

        #####################

    def getDatax(self):
        x1 = self.entry1.get()
        x2 = self.entry2.get()
        x3 = self.entry3.get()
        x4 = self.entry4.get()

        x5 = v.get()

        x6 = int(self.entry6.get())
        x7 = int(self.entry7.get())
        x8 = self.entry8.get()
        x9 = self.entry9.get()

        x10 = self.entry10.get('1.0', 'end')

        x11 = int(self.entry11.get())
        x11a = int(self.entry11a.get())
        x11b = self.entry11b.get()

        x12 = int(self.entry12.get())
        x12a = int(self.entry12a.get())
        x12b = self.entry12b.get()

        x13 = int(self.entry13.get())
        x13a = int(self.entry13a.get())
        x13b = self.entry13b.get()

        x14 = self.entry14.get('1.0', 'end')

        list1 = [
            x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x11a, x11b, x12,
            x12a, x12b, x13, x13a, x13b, x14,
            "=HYPERLINK(" + "\"" + x15 + "\"" + "," + "\"" + temp2 + "\"" + ")"
        ]

        wb = openpyxl.load_workbook('..\database\database.xlsx')
        ws = wb.active
        print(wb.get_sheet_names())
        max_row = ws.get_highest_row()
        #max_col = ws.get_highest_column()
        max_col = 21
        print max_row

        for i in xrange(1, max_col + 1):
            #print list1[i]
            ws.cell(row=max_row + 1, column=i).value = list1[i - 1]
        ws.cell(row=max_row + 1,
                column=max_col).font = Font(color="0000FF", underline='single')
        ws.cell(row=max_row + 1,
                column=max_col).alignment = Alignment(horizontal='center')
        wb.save('..\database\database.xlsx')

        self.entry1.delete(0, 'end')
        self.entry2.delete(0, 'end')
        self.entry3.delete(0, 'end')
        self.entry4.delete(0, 'end')

        self.entry6.delete(0, 'end')
        self.entry7.delete(0, 'end')
        self.entry8.delete(0, 'end')
        self.entry9.delete(0, 'end')
        self.entry10.delete('1.0', '2.0')
        self.entry11.delete(0, 'end')
        self.entry11a.delete(0, 'end')
        self.entry11b.delete(0, 'end')
        self.entry12.delete(0, 'end')
        self.entry12a.delete(0, 'end')
        self.entry12b.delete(0, 'end')
        self.entry13.delete(0, 'end')
        self.entry13a.delete(0, 'end')
        self.entry13b.delete(0, 'end')

        self.entry14.delete('1.0', '2.0')

        self.xxx.config(text="Recent Changes Made For : " + x1)
コード例 #18
0
ファイル: SearchCSV.py プロジェクト: nakulrathore/CSV_Play
class Example(Frame):
  
    def __init__(self, parent):
        Frame.__init__(self, parent)   
         
        self.parent = parent
        
        self.initUI()
        
        
    def initUI(self):
      
        self.parent.title("Review")
        self.pack(fill=BOTH, expand=True)
        labelfont20 = ('Roboto', 20, 'bold')
        labelfont12 = ('Roboto', 12, 'bold')
        
        frame0 = Frame(self)
        frame0.pack()
        
        lbl0 = Label(frame0, text="Hi USER")
        lbl0.config(font=labelfont20)    
        lbl0.pack( padx=5, pady=5)
        lbl00 = Label(frame0, text="Search here")
        lbl00.config(font=labelfont12)
        lbl00.pack( padx=5, pady=5)
        
        
        frame1 = Frame(self)
        frame1.pack()
        
        lbl1 = Label(frame1, text="min %", width=9)
        lbl1.pack(side=LEFT, padx=7, pady=5)           
       
        self.entry1 = Entry(frame1,width=20)
        self.entry1.pack(padx=5, expand=True)
        
        
        
        
        
        frame6 = Frame(self)
        frame6.pack()
        closeButton = Button(frame6, text="Get Names",width=12,command=self.getDate)
        closeButton.pack(padx=5, pady=5)
        
        frame7 = Frame(self)
        frame7.pack()
        closeButton1 = Button(frame7, text="Open in excel",width=15,command=self.openDate)
        closeButton1.pack(padx=5, pady=5)
        
        
        
        frame000 = Frame(self)
        frame000.pack()
        self.lbl000= Label(frame000, text=" ")
        self.lbl000.config(font=labelfont12)    
        self.lbl000.pack( padx=5, pady=5)
        
        frame00a = Frame(self)
        frame00a.pack()
        self.lbl00a= Label(frame000, text=" ")
        self.lbl00a.pack( padx=5, pady=5)
        
        
        
        
    def getDate(self):
        x1 = self.entry1.get()
        nx = ""
        
        
        self.entry1.delete(0, 'end')
        
        self.lbl000.config(text="Names Are:")
        

        
        
        #read csv, and split on "," the line
        csv_file = csv.reader(open('test.csv', "rb"), delimiter=",")
        #loop through csv list
        for row in csv_file:
            if row[2] >= x1:
                nx+=str(row[0]+", ")
                with open("output5.csv", "ab") as fp:
                    wr = csv.writer(fp, dialect='excel')
                    wr.writerow(row)
                fp.close()
        self.lbl00a.config(text=nx)
        
    def openDate(self):
        os.system("start "+'output5.csv')
コード例 #19
0
class Example(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent)

        self.parent = parent

        self.initUI()

    def initUI(self):

        self.parent.title("Review")
        self.pack(fill=BOTH, expand=True)
        labelfont20 = ('Roboto', 20, 'bold')
        labelfont12 = ('Roboto', 12, 'bold')

        frame0 = Frame(self)
        frame0.pack()

        lbl0 = Label(frame0, text="Hi USER")
        lbl0.config(font=labelfont20)
        lbl0.pack(padx=5, pady=5)
        lbl00 = Label(frame0, text="Search here")
        lbl00.config(font=labelfont12)
        lbl00.pack(padx=5, pady=5)

        frame1 = Frame(self)
        frame1.pack()

        lbl1 = Label(frame1, text="min %", width=9)
        lbl1.pack(side=LEFT, padx=7, pady=5)

        self.entry1 = Entry(frame1, width=20)
        self.entry1.pack(padx=5, expand=True)

        frame6 = Frame(self)
        frame6.pack()
        closeButton = Button(frame6,
                             text="Get Names",
                             width=12,
                             command=self.getDate)
        closeButton.pack(padx=5, pady=5)

        frame7 = Frame(self)
        frame7.pack()
        closeButton1 = Button(frame7,
                              text="Open in excel",
                              width=15,
                              command=self.openDate)
        closeButton1.pack(padx=5, pady=5)

        frame000 = Frame(self)
        frame000.pack()
        self.lbl000 = Label(frame000, text=" ")
        self.lbl000.config(font=labelfont12)
        self.lbl000.pack(padx=5, pady=5)

        frame00a = Frame(self)
        frame00a.pack()
        self.lbl00a = Label(frame000, text=" ")
        self.lbl00a.pack(padx=5, pady=5)

    def getDate(self):
        x1 = self.entry1.get()
        nx = ""

        self.entry1.delete(0, 'end')

        self.lbl000.config(text="Names Are:")

        #read csv, and split on "," the line
        csv_file = csv.reader(open('test.csv', "rb"), delimiter=",")
        #loop through csv list
        for row in csv_file:
            if row[2] >= x1:
                nx += str(row[0] + ", ")
                with open("output5.csv", "ab") as fp:
                    wr = csv.writer(fp, dialect='excel')
                    wr.writerow(row)
                fp.close()
        self.lbl00a.config(text=nx)

    def openDate(self):
        os.system("start " + 'output5.csv')
コード例 #20
0
ファイル: AppendCSV.py プロジェクト: nakulrathore/CSV_Play
    def initUI(self):

        self.parent.title("Review")
        self.pack(fill=BOTH, expand=True)
        labelfont20 = ('Roboto', 20, 'bold')
        labelfont12 = ('Roboto', 12, 'bold')

        frame0 = Frame(self)
        frame0.pack()

        lbl0 = Label(frame0, text="Hi USER")
        lbl0.config(font=labelfont20)
        lbl0.pack(padx=5, pady=5)
        lbl00 = Label(frame0, text="Fill the data here")
        lbl00.config(font=labelfont12)
        lbl00.pack(padx=5, pady=5)

        frame1 = Frame(self)
        frame1.pack()

        lbl1 = Label(frame1, text="Name", width=15)
        lbl1.pack(side=LEFT, padx=7, pady=5)

        self.entry1 = Entry(frame1, width=20)
        self.entry1.pack(padx=5, expand=True)

        frame2 = Frame(self)
        frame2.pack()

        lbl2 = Label(frame2, text="Branch", width=15)
        lbl2.pack(side=LEFT, padx=7, pady=5)

        self.entry2 = Entry(frame2)
        self.entry2.pack(fill=X, padx=5, expand=True)

        frame3 = Frame(self)
        frame3.pack()

        lbl3 = Label(frame3, text="Percent", width=15)
        lbl3.pack(side=LEFT, padx=7, pady=5)

        self.entry3 = Entry(frame3)
        self.entry3.pack(fill=X, padx=5, expand=True)

        frame4 = Frame(self)
        frame4.pack()

        lbl4 = Label(frame4, text="Placed(Yes/No)", width=15)
        lbl4.pack(side=LEFT, padx=7, pady=5)

        self.entry4 = Entry(frame4)
        self.entry4.pack(fill=X, padx=5, expand=True)

        frame5 = Frame(self)
        frame5.pack()

        lbl5 = Label(frame5, text="Resume_File", width=15)
        lbl5.pack(side=LEFT, padx=7, pady=5)

        self.entry5 = Entry(frame5)
        self.entry5.pack(fill=X, padx=5, expand=True)

        frame6 = Frame(self)
        frame6.pack()
        closeButton = Button(frame6,
                             text="SUBMIT",
                             width=15,
                             command=self.getDate)
        closeButton.pack(padx=5, pady=5)

        frame000 = Frame(self)
        frame000.pack()

        self.lbl000 = Label(frame000, text="Enter the data and click SUBMIT")
        self.lbl000.config(font=labelfont12)
        self.lbl000.pack(padx=5, pady=5)
コード例 #21
0
class Window(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent)
        self.initUI()
        self.UIwithGrid()

    def initUI(self):  # creating gui
        self.frame1 = Frame(self)
        self.frame2 = Frame(self)
        self.frame3 = Frame(self)
        self.frame4 = Frame(self)
        self.frame5 = Frame(self)

        # created multiple frames

        self.label1 = Label(self.frame1,
                            text="COURSE PROGRAM ESTIMATOR",
                            font='Helvetica 25 bold',
                            background="SpringGreen3",
                            foreground="black")
        self.label2 = Label(self.frame1,
                            text="     Training Data: ",
                            font="Times 14")
        self.entry = Entry(self.frame1, width=65)
        self.entry.insert(
            0,
            'https://www.sehir.edu.tr/tr/duyurular/2017-2018-Akademik-Yili-Ders-Programi'
        )
        self.color = Label(
            self.frame1,
            text="                   ",
            background="red",
        )
        self.button = Button(self.frame1,
                             text="Fetch and Train",
                             command=self.fetch)
        self.label3 = Label(self.frame2,
                            text="Individual Courses:",
                            font='Helvetica 10 bold')
        self.label4 = Label(self.frame3,
                            text="     Top 3 Estimates:",
                            font='Helvetica 10 bold')
        self.coursesListbox = Listbox(self.frame2, width=30)
        self.label5 = Label(self.frame4,
                            text=" Accuracy Analysis \nBased on Programs: ",
                            font='Helvetica 10 bold')
        self.programsListbox = Listbox(self.frame4, width=30)
        self.estimatesListbox = Text(self.frame5, width=30, height=10)

        self.scrollbar1 = Scrollbar(self.frame2, orient=VERTICAL)
        self.scrollbar2 = Scrollbar(self.frame4, orient=VERTICAL)
        self.scrollbar3 = Scrollbar(self.frame5, orient=VERTICAL)
        self.scrollbar1.config(command=self.coursesListbox.yview)
        self.scrollbar2.config(comman=self.programsListbox.yview)
        self.scrollbar3.config(command=self.estimatesListbox.yview)
        self.coursesListbox.config(yscrollcommand=self.scrollbar1.set)
        self.programsListbox.config(yscrollcommand=self.scrollbar2.set)
        self.estimatesListbox.config(yscrollcommand=self.scrollbar3.set)

    def UIwithGrid(self):
        self.frame1.grid(row=1, column=2, sticky=N + S + E + W)
        self.frame2.grid(row=2, column=1, columnspan=2, sticky=W)
        self.frame3.grid(row=2, column=2, sticky=N + E)
        self.frame4.grid(row=3, column=1, columnspan=2, sticky=W, pady=5)
        self.frame5.grid(row=3, column=2, columnspan=2, sticky=E, pady=5)
        self.label1.grid(row=1, column=2, sticky=E + W)
        self.label2.grid(row=2, column=1, columnspan=2, pady=25, sticky=W)
        self.entry.grid(row=2, column=2, columnspan=2, sticky=E)
        self.color.grid(row=3, column=2, columnspan=2)
        self.button.grid(row=3, column=2, sticky=E, padx=90)
        self.label3.grid(row=1, column=1)
        self.coursesListbox.grid(row=2, column=1)
        self.label4.pack(in_=self.frame3, side='left')
        self.label5.grid(row=1, column=1)
        self.programsListbox.grid(row=2, column=1)
        self.estimatesListbox.grid(row=2, column=3, sticky=E)
        self.scrollbar1.grid(row=2, column=1, sticky=N + S + E)
        self.scrollbar2.grid(row=2, column=1, sticky=N + E + S)
        self.scrollbar3.grid(row=2, column=2, columnspan=2, sticky=N + S + E)
        self.pack()

    def fetch(self):  # fetching phase
        self.color.config(background='yellow')
        self.course_list = []
        self.update()
        url = self.entry.get()
        self.dataobj = Data()  # creating data obj
        self.dataobj.init_data(url)
        self.courses = self.dataobj.courselist.keys()  # getting keys
        self.courses.sort()  # sorting keys
        self.obj_list = []
        for i in self.courses:
            self.obj_list.append(self.dataobj.courselist[i])
        self.classifier_obj = docclass.naivebayes(docclass.getwords)
        for i in self.obj_list:  # TRANING PHASE
            self.classifier_obj.train(i.split_name.lower(), i.first_code)
        r1 = re.compile("(.*?)\s*\(")
        for i in self.courses:  # adding courses to listbox
            course_name = self.dataobj.courselist[i].name
            name = r1.match(course_name)
            if name != None:
                name1 = i + '' + '(' + name.group(1) + ')'
            else:
                name1 = i + ' ' + '(' + course_name + ')'
            self.coursesListbox.insert(END, name1)
        for z in self.courses:  # adding course category to other listbox
            if self.dataobj.courselist[z].first_code not in self.course_list:
                self.course_list.append(self.dataobj.courselist[z].first_code)

            code = self.dataobj.courselist[z].first_code
            if code not in self.programsListbox.get(0, END):
                self.programsListbox.insert(END, code)
        self.color.config(background='green')
        self.update()
        self.coursesListbox.bind('<<ListboxSelect>>', self.estimate)
        self.programsListbox.bind('<<ListboxSelect>>', self.analyze)

    def estimate(self, event):  # estimating phase
        try:
            for wid in self.frame3.winfo_children():
                wid.destroy()
            self.label4 = Label(self.frame3,
                                text="     Top 3 Estimates:",
                                font='Helvetica 10 bold')
            self.label4.pack(in_=self.frame3)
        except:
            print 'ERROR !!!!'
        widget = event.widget
        selection = widget.curselection()
        picked = widget.get(selection[0])
        x = picked.split('(')
        dict_ = {}
        for cat in self.course_list:  # getting estimating scores
            dict_[cat] = self.classifier_obj.prob(x[1], cat) * 10

        scores = dict_
        sorted_scores = sorted(scores.items(),
                               key=operator.itemgetter(1),
                               reverse=True)  # sorting dictionary
        top_3 = sorted_scores[0:3]  # getting top 3 scores
        print top_3
        dict_temp = {x[0].split(' ')[0]: top_3}
        m = 1
        for key, value in dict_temp.items():  # adding items as labels
            for i in value:
                department, score = i
                if department != key:  # checking if it is true estimation or not
                    color = 'red'
                else:
                    color = 'green'
                self.first_element = Label(self.frame3,
                                           text=department + ':' + str(score),
                                           font='Helvetica 15 bold',
                                           background=color,
                                           width=20)
                if m == 1:
                    self.first_element.pack(in_=self.frame3)
                elif m == 2:
                    self.first_element.pack(in_=self.frame3)
                elif m == 3:
                    self.first_element.pack(in_=self.frame3)
                m = m + 1

    def analyze(self, event):
        try:
            self.estimatesListbox.delete('1.0', END)
        except:
            print 'ERROR'
        widget = event.widget
        selection = widget.curselection()
        picked = widget.get(selection[0])
        cat_ = picked
        course_names = {}
        for i in self.obj_list:  # creating a dict. keys name of courses, values code of
            if i.first_code == cat_:  # filtering
                print i.first_code, cat_
                name = i.name.split('(')[0]
                course_names[name] = i.code
            else:
                continue
        info = {}
        for course in course_names.keys():  # finds best match for each course
            score_dict = {}
            for cat in self.course_list:
                score_dict[cat] = self.classifier_obj.prob(course, cat)
            sorted_scores = sorted(score_dict.items(),
                                   key=operator.itemgetter(1),
                                   reverse=True)
            info[course] = sorted_scores[0][0]
        all_info = {
            'Total Number Of Courses: ': str(len(info))
        }  # creating initial analyzing data
        q = 0
        for item in info.values():  # amount of accurate data
            if item != cat_:
                q = q + 1
        all_info['Inaccurate Classification: '] = str(q)
        all_info['Accurately Classified: '] = len(info) - q
        all_info['Accuracy: '] = '%' + str(
            (float(all_info['Accurately Classified: ']) / float(len(info))) *
            100)
        _ = all_info.keys()
        _.sort()
        for infos in _:
            self.estimatesListbox.insert(END,
                                         infos + str(all_info[infos]) + '\n ')

        for course_ in info:
            self.estimatesListbox.insert(
                END,
                '\t' + course_names[course_] + '-->' + info[course_] + '\n')
コード例 #22
0
ファイル: Metadator.py プロジェクト: Guts/Metadator
class Metadator(Tk):
    def __init__(self):
        u"""
        Main window constructor
        Creates 1 frame and 2 labeled subframes
        """
        # first: the log
        # see: http://sametmax.com/ecrire-des-logs-en-python/
        self.logger = logging.getLogger()
        self.logger.setLevel(logging.DEBUG)  # all errors will be get
        log_form = logging.Formatter('%(asctime)s || %(levelname)s || %(message)s')
        logfile = RotatingFileHandler('Metadator_LOG.log', 'a', 5000000, 1)
        logfile.setLevel(logging.DEBUG)
        logfile.setFormatter(log_form)
        self.logger.addHandler(logfile)
        self.logger.info('\n\t ======== Metadator ========')  # first messages
        self.logger.info('Starting the UI')

        # checking the path to GDAL in the path
        if "GDAL_DATA" not in env.keys():
            try:
                gdal.SetConfigOption(str('GDAL_DATA'),
                                     str(path.abspath(r'data/gdal')))
            except:
                print("Oups! Something has gone wrong...\
                      see: https://github.com/Guts/Metadator/issues/21")
        else:
            pass

        # basics settings
        Tk.__init__(self)           # constructor of parent graphic class
        self.title(u'Metadator {0}'.format(MetadatorVersion))
        self.style = Style()        # more friendly windows style
        if opersys == 'win32':
            self.logger.info('Op. system: {0}'.format(platform.platform()))
            self.iconbitmap('Metadator.ico')    # windows icon
            self.uzer = env.get(u'USERNAME')
        elif opersys == 'linux2':
            self.logger.info('Op. system: {0}'.format(platform.platform()))
            self.uzer = env.get(u'USER')
            icon = Image("photo", file=r'data/img/metadator.gif')
            self.call('wm', 'iconphoto', self._w, icon)
            self.minsize(580, 100)
            self.style.theme_use('clam')
        elif opersys == 'darwin':
            self.logger.info('Op. system: {0}'.format(platform.platform()))
            self.uzer = env.get(u'USER')
        else:
            self.logger.warning('Operating system not tested')
            self.logger.info('Op. system: {0}'.format(platform.platform()))
        self.resizable(width=False, height=False)
        self.focus_force()

        self.logger.info('GDAL version: {}'.format(gdal.__version__))

        # variables
        self.def_rep = ""       # folder to search for
        self.def_lang = 'FR'    # language to start
        self.def_doc = IntVar()     # to export into Word
        self.def_xls = IntVar()     # to export into Excel 2003
        self.def_xml = IntVar()     # to export into ISO 19139
        self.def_cat = IntVar()     # to merge all output Word files
        self.def_odt = IntVar()     # to export into OpenDocumentText
        self.def_dict = IntVar()    # to make a dictionnary of data
        self.def_kass = IntVar()    # to handle field name case sensitive
        self.def_stat = IntVar()    # to active/disable stats fields
        self.li_pro = []            # list for profiles in language selected
        self.li_shp = []            # list for shapefiles path
        self.li_tab = []            # list for MapInfo tables path
        self.num_folders = 0        # number of folders explored
        self.today = strftime("%Y-%m-%d")   # date of the day
        self.dico_layer = OD()      # dictionary about layer properties
        self.dico_profil = OD()     # dictionary from profile selected
        self.dico_fields = OD()     # dictionary for fields information
        self.dico_rekur = OD()      # dictionary of recurring attributes
        self.dico_err = OD()     # errors list
        self.dico_help = OD()                # dictionary of help texts
        li_lang = [lg for lg in listdir(r'locale')]   # available languages
        self.blabla = OD()      # texts dictionary

        # GUI fonts
        ft_tit = tkFont.Font(family="Times", size=10, weight=tkFont.BOLD)

        # fillfulling
        self.load_settings()
        self.load_texts(self.def_lang)
        self.li_profiles(self.def_lang)
        self.li_rekurs(self.def_lang)
        self.recup_help(self.def_lang)

        # Tabs
        self.nb = Notebook(self)
        self.tab_globals = Frame(self.nb)   # tab_id = 0
        self.tab_options = Frame(self.nb)   # tab_id = 1
        self.tab_attribs = Frame(self.nb)   # tab_id = 2
        self.nb.add(self.tab_globals,
                    text=self.blabla.get('gui_tab1'), padding=3)
        self.nb.add(self.tab_options,
                    text=self.blabla.get('gui_tab2'), padding=3)
        self.nb.add(self.tab_attribs,
                    text=self.blabla.get('gui_tab3'), padding=3)
        self.logger.info('UI created')

                ### Tab 1: global
        # Frames
        self.FrPath = Labelframe(self.tab_globals,
                                 name='main',
                                 text=self.blabla.get('tab1_fr1'))
        self.FrProg = Labelframe(self.tab_globals,
                                 name='progression',
                                 text=self.blabla.get('tab1_frprog'))
            ## Frame 1
        # target folder
        self.labtarg = Label(self.FrPath, text=self.blabla.get('tab1_path'))
        self.target = Entry(self.FrPath, width=25)
        self.browsetarg = Button(self.FrPath,       # browse button
                                 text=self.blabla.get('tab1_browse'),
                                 command=lambda: self.setpathtarg(),
                                 takefocus=True)
        self.browsetarg.focus_force()               # force the focus on
        self.profil = Label(self.FrPath, text=self.blabla.get('tab1_prof'))
        # profiles switcher
        self.ddl_profil = Combobox(self.FrPath, values=self.li_pro, width=5)
        self.ddl_profil.current(0)
        self.ddl_profil.bind("<<ComboboxSelected>>", self.select_profil)
        # widgets placement
        self.labtarg.grid(row=1, column=1, columnspan=1,
                          sticky=N + S + W + E, padx=2, pady=8)
        self.target.grid(row=1, column=2, columnspan=1,
                         sticky=N + S + W + E, padx=2, pady=8)
        self.browsetarg.grid(row=1, column=3,
                             sticky=N + S + W + E, padx=2, pady=8)
        self.profil.grid(row=2, column=1,
                         sticky=N + S + W + E, padx=2, pady=8)
        self.ddl_profil.grid(row=2, column=2, sticky=W + E + N + S,
                             columnspan=2, padx=2, pady=8)

        # tooltips
        InfoBulle(self.target, message=self.dico_help.get(30)[1])
        InfoBulle(self.browsetarg, message=self.dico_help.get(30)[1])
        InfoBulle(self.ddl_profil, message=self.dico_help.get(31)[1])

            ## Frame 2
        # variables
        self.status = StringVar(self.FrProg, '')
        # widgets
        self.prog_layers = Progressbar(self.FrProg, orient="horizontal")
        self.prog_fields = Progressbar(self.FrProg, orient="horizontal")
        # widgets placement
        Label(self.FrProg, textvariable=self.status,
                           foreground='DodgerBlue').pack(expand=1)
        self.prog_layers.pack(expand=1, fill=X)

        # Frames placement
        self.FrPath.pack(expand=1, fill='both')
        self.FrProg.pack(expand=1, fill='both')

                ### Tab 2: options
        # Export options
        caz_doc = Checkbutton(self.tab_options,
                              text=u'HTML / Word (.doc/.docx)',
                              variable=self.def_doc,
                              command=lambda: self.catalog_dependance())
        caz_xls = Checkbutton(self.tab_options,
                              text=u'Excel 2003 (.xls)',
                              variable=self.def_xls)
        caz_xml = Checkbutton(self.tab_options,
                              text=u'XML (ISO 19139)',
                              variable=self.def_xml)
        self.caz_cat = Checkbutton(self.tab_options,
                                   text=self.blabla.get('tab2_merge'),
                                   variable=self.def_cat)
        caz_odt = Checkbutton(self.tab_options,
                              text=u'Open Document Text (.odt)',
                              variable=self.def_odt)
        # widgets placement
        caz_doc.grid(row=1,
                     column=0,
                     sticky=N + S + W + E,
                     padx=2, pady=2)
        self.caz_cat.grid(row=2,
                          column=0,
                          sticky=N + S + W + E,
                          padx=2, pady=2)
        caz_xls.grid(row=1,
                     column=1,
                     sticky=N + S + W + E,
                     padx=2, pady=2)
        caz_xml.grid(row=2,
                     column=1,
                     sticky=N + S + W + E,
                     padx=2, pady=2)
        caz_odt.grid(row=3,
                     column=1,
                     sticky=N + S + W + E,
                     padx=2, pady=2)
        # disabling the widgets which work only on Windows OS
        if opersys != 'win32':
            self.logger.info('Disabling Windows reserved functions.')
            self.def_doc.set(0)
            self.def_cat.set(0)
            caz_doc.configure(state='disabled')
            self.caz_cat.configure(state='disabled')
        else:
            pass
        # make the catalog option depending on the Word option
        self.catalog_dependance()

        # tooltips
        InfoBulle(caz_doc,
                  message=self.dico_help.get(33)[1],
                  image=self.dico_help.get(33)[2])
        InfoBulle(caz_xls,
                  message=self.dico_help.get(34)[1],
                  image=self.dico_help.get(34)[2])
        InfoBulle(caz_xml,
                  message=self.dico_help.get(35)[1],
                  image=self.dico_help.get(35)[2])
        InfoBulle(caz_odt,
                  message=self.dico_help.get(36)[1],
                  image=self.dico_help.get(36)[2])
        InfoBulle(self.caz_cat,
                  message=self.dico_help.get(37)[1],
                  image=self.dico_help.get(37)[2])

                ### Tab 3: recurring attributes
        # Attribute selector
        self.lab_chps = Label(self.tab_attribs, text=self.blabla.get('tab3_sele'))
        self.ddl_attr = Combobox(self.tab_attribs, values=self.dico_rekur.keys())
        self.ddl_attr.bind("<<ComboboxSelected>>", self.edit_rekur)
        self.supr = Button(self.tab_attribs, text=self.blabla.get('tab3_supp'),
                           command=self.del_rekur)
        # frame
        self.FrRekur = Labelframe(self.tab_attribs,
                                  name='attributes',
                                  text=self.blabla.get('tab3_tit'))
        # attribute settings
        self.tab3_LBnom = Label(self.FrRekur,
                                text=self.blabla.get('tab3_nom'),
                                state=DISABLED)
        self.tab3_ENnom = Entry(self.FrRekur, state=DISABLED)
        self.tab3_LBdesc = Label(self.FrRekur,
                                 text=self.blabla.get('tab3_desc'),
                                 state=DISABLED)
        self.tab3_TXdesc = Text(self.FrRekur,
                                height=5, width=30,
                                wrap=WORD, state=DISABLED)
        self.tab3_CBcass = Checkbutton(self.FrRekur,
                                       text=self.blabla.get('tab3_cass'),
                                       variable=self.def_kass,
                                       state=DISABLED)
        self.tab3_CBstat = Checkbutton(self.FrRekur,
                                       text=self.blabla.get('tab3_stat'),
                                       variable=self.def_stat,
                                       state=DISABLED)
        # Validation button
        self.save = Button(self.FrRekur,
                           text=self.blabla.get('tab3_save'),
                           command=self.save_rekur,
                           state='disabled')

        # widgets placement
        self.lab_chps.grid(row=1, column=1, sticky=N + S + W,
                           padx=2, pady=2)
        self.ddl_attr.grid(row=1, column=2, sticky=N + S + W + E,
                           padx=2, pady=2)
        self.supr.grid(row=1, column=3, sticky=N + S + W + E,
                       padx=2, pady=2)
        self.tab3_LBnom.grid(row=1, column=0, columnspan=1,
                             sticky=N + S + W, padx=2, pady=2)
        self.tab3_ENnom.grid(row=1, column=1, columnspan=1,
                             sticky=N + S + W + E, padx=2, pady=2)
        self.tab3_LBdesc.grid(row=2, column=0, columnspan=1,
                              sticky=N + S + W + E, padx=2, pady=2)
        self.tab3_TXdesc.grid(row=2, column=1, columnspan=2,
                              sticky=N + S + W + E, padx=2, pady=2)
        self.tab3_CBcass.grid(row=3, column=0, columnspan=1,
                              sticky=N + S + W + E, padx=2, pady=2)
        self.tab3_CBstat.grid(row=3, column=1, columnspan=1,
                              sticky=N + S + W + E, padx=2, pady=2)
        self.save.grid(row=5, column=0, columnspan=4,
                       sticky=N + S + W + E, padx=2, pady=2)

        # Frame placement
        self.FrRekur.grid(row=2, column=1, columnspan=3,
                          sticky=N + S + W + E, padx=2, pady=2)

        # tooltips
        InfoBulle(self.lab_chps, message=self.dico_help.get(38)[1])
        InfoBulle(self.ddl_attr, message=self.dico_help.get(39)[1])
        InfoBulle(self.supr, message=self.dico_help.get(40)[1])
        InfoBulle(self.tab3_CBcass, message=self.dico_help.get(41)[1])
        InfoBulle(self.tab3_CBstat, message=self.dico_help.get(42)[1])

            ## Main frame
        # Hola
        self.welcome = Label(self,
                             text=self.blabla.get('hi') + self.uzer,
                             font=ft_tit,
                             foreground="red2")
        # Image
        self.icone = PhotoImage(master=self, file=r'data/img/metadator.gif')
        Label(self, image=self.icone).grid(row=2,
                                           column=0,
                                           padx=2,
                                           pady=2,
                                           sticky=N + S + W + E)
        # credits
        s = Style(self)
        s.configure('Kim.TButton', foreground='DodgerBlue',
                    borderwidth=0, relief="flat")
        Button(self,
               text='by Julien M. (2015)',
               style='Kim.TButton',
               command=lambda: open_new('https://github.com/Guts')).grid(row=3,
                                                                         padx=2,
                                                                         pady=2,
                                                                         sticky=W+E)
        # language switcher
        self.ddl_lang = Combobox(self, values=li_lang, width=5)
        self.ddl_lang.current(li_lang.index(self.def_lang))
        self.ddl_lang.bind("<<ComboboxSelected>>", self.change_lang)
        # Go go go button
        self.val = Button(self,
                          text=self.blabla.get('tab1_go'),
                          state='active',
                          command=lambda: self.process())
        # Cancel button
        self.can = Button(self,
                          text=self.blabla.get('gui_quit'),
                          command=self.destroy)
        # widgets placement
        self.welcome.grid(row=0, column=0, columnspan=1, sticky=N + S + W + E,
                          padx=2, pady=2)
        self.ddl_lang.grid(row=1, column=0, sticky=N, padx=2, pady=0)
        self.can.grid(row=4, column=0, sticky=N + S + W + E, padx=2, pady=2)
        self.val.grid(row=4, column=1, sticky=N + S + W + E, padx=2, pady=2)

        # tooltips
        InfoBulle(self.ddl_lang, message=self.dico_help.get(32)[1])

                ### Notebook placement
        self.nb.grid(row=0, rowspan=4, column=1, sticky=N + S + W + E)
        # keep updated list of profiles
        self.maj()

    def maj(self):
        """
        update the profiles dropdown list every second
        """
        try:
            self.li_profiles(self.ddl_lang.get())
            self.ddl_profil['values'] = self.li_pro
            self.after(1000, self.maj)
        except WindowsError:    # avoid an error occuring with browse button
            self.after(1000, self.maj)
            pass

    def alter_state(self, parent, new_state):
        """
        just a function to change easily  the state of  all children widgets
        of a parent class

        parent=Tkinter class with children (Frame, Labelframe, Tk, etc.)
        new_state=Tkinter keyword for widget state (ACTIVE, NORMAL, DISABLED)
        """
        for child in parent.winfo_children():
            child.configure(state=new_state)
        # end of function
        return parent, new_state

    def catalog_dependance(self):
        """ unselect the catalog option if the word option is unselected """
        if self.def_doc.get() == 0:
            self.def_cat.set(0)
            self.caz_cat.config(state='disabled')
        elif self.def_doc.get() == 1:
            self.caz_cat.config(state='normal')
        # end of function
        return

    def load_settings(self):
        u""" load settings from last execution """
        confile = 'options.ini'
        config = ConfigParser.RawConfigParser()
        config.read(confile)
        # basics
        self.def_lang = config.get('basics', 'def_codelang')
        self.def_rep = config.get('basics', 'def_rep')
        # export preferences
        self.def_doc.set(config.get('export_preferences', 'def_word'))
        self.def_cat.set(config.get('export_preferences', 'def_cat'))
        self.def_xls.set(config.get('export_preferences', 'def_xls'))
        self.def_xml.set(config.get('export_preferences', 'def_xml'))
        self.def_dict.set(config.get('export_preferences', 'def_dict'))
        self.def_odt.set(config.get('export_preferences', 'def_odt'))
        # log
        self.logger.info('Last options loaded')
        # End of function
        return config, self.def_rep, self.def_lang, self.def_doc

    def save_settings(self):
        u""" save options in order to make the next execution easier """
        confile = 'options.ini'
        config = ConfigParser.RawConfigParser()
        # add sections
        config.add_section('basics')
        config.add_section('export_preferences')
        # basics
        config.set('basics', 'def_codelang', self.ddl_lang.get())
        config.set('basics', 'def_rep', self.target.get())
        # export preferences
        config.set('export_preferences', 'def_word', self.def_doc.get())
        config.set('export_preferences', 'def_cat', self.def_cat.get())
        config.set('export_preferences', 'def_xls', self.def_xls.get())
        config.set('export_preferences', 'def_xml', self.def_xml.get())
        config.set('export_preferences', 'def_dict', self.def_dict.get())
        config.set('export_preferences', 'def_odt', self.def_odt.get())
        # Writing the configuration file
        with open(confile, 'wb') as configfile:
            config.write(configfile)
        # End of function
        return config

    def change_lang(self, event):
        u""" update the texts dictionary with the language selected """
        new_lang = event.widget.get()
        # change to the new language selected
        self.load_texts(new_lang)
        self.li_profiles(new_lang)
        self.li_rekurs(new_lang)
        self.ddl_profil.delete(0, END)
        self.ddl_profil.config(values=self.li_pro)
        self.ddl_profil.update()
        self.ddl_attr.config(values=self.dico_rekur.keys())
        self.recup_help(new_lang)
        # update widgets text
          # tab1
        self.nb.tab(0, text=self.blabla.get('gui_tab1'))
        self.welcome.config(text=self.blabla.get('hi') + self.uzer)
        self.can.config(text=self.blabla.get('gui_quit'))
        self.FrPath.config(text=self.blabla.get('tab1_fr1'))
        self.FrProg.config(text=self.blabla.get('tab1_frprog'))
        self.labtarg.config(text=self.blabla.get('tab1_path'))
        self.browsetarg.config(text=self.blabla.get('tab1_browse'))
        self.val.config(text=self.blabla.get('tab1_go'))
        self.profil.config(text=self.blabla.get('tab1_prof'))
          # tab2
        self.nb.tab(1, text=self.blabla.get('gui_tab2'))
        self.caz_cat.config(text=self.blabla.get('tab2_merge'))
          # tab3
        self.nb.tab(2, text=self.blabla.get('gui_tab3'))
        self.lab_chps.config(text=self.blabla.get('tab3_sele'))
        self.supr.config(text=self.blabla.get('tab3_supp'))
        self.FrRekur.config(text=self.blabla.get('tab3_tit'))
        self.tab3_LBnom.config(text=self.blabla.get('tab3_nom'))
        self.tab3_LBdesc.config(text=self.blabla.get('tab3_desc'))
        self.tab3_CBcass.config(text=self.blabla.get('tab3_cass'))
        self.tab3_CBstat.config(text=self.blabla.get('tab3_stat'))
        self.save.config(text=self.blabla.get('tab3_save'))

        # End of function
        return self.blabla

    def load_texts(self, lang='FR'):
        u"""
        Load texts according to the selected language
        """
        # clearing the text dictionary
        self.blabla.clear()
        # open xml cursor
        xml = ET.parse('locale/{0}/lang_{0}.xml'.format(lang))
        # Looping and gathering texts from the xml file
        for elem in xml.getroot().getiterator():
            self.blabla[elem.tag] = elem.text
        # updating the GUI
        self.update()
        # en of function
        return self.blabla

    def setpathtarg(self):
        """ ...browse and insert the path of target folder """
        foldername = askdirectory(parent=self,
                                  initialdir=self.def_rep,
                                  mustexist=True,
                                  title=self.blabla.get('gui_cible'))
        # check if a folder has been choosen
        if foldername:
            try:
                self.target.delete(0, END)
                self.target.insert(0, foldername)
            except:
                info(title=self.blabla.get('nofolder'),
                     message=self.blabla.get('nofolder'))
                return

        # count shapefiles and MapInfo files in a separated thread
        proc = threading.Thread(target=self.li_geofiles,
                                args=(foldername, ))
        proc.daemon = True
        proc.start()

        # end of function
        return foldername

    def li_geofiles(self, foldertarget):
        u""" List shapefiles and MapInfo files (.tab, not .mid/mif) contained
        in the folders structure """
        # reseting global variables
        self.li_shp = []
        self.li_tab = []
        self.browsetarg.config(state=DISABLED)
        # Looping in folders structure
        self.status.set(self.blabla.get('tab1_prog1'))
        self.prog_layers.start()
        for root, dirs, files in walk(unicode(foldertarget)):
            self.num_folders = self.num_folders + len(dirs)
            for f in files:
                """ looking for files with geographic data """
                try:
                    unicode(path.join(root, f))
                    full_path = path.join(root, f)
                except UnicodeDecodeError:
                    full_path = path.join(root, f.decode('latin1'))
                # Looping on files contained
                if path.splitext(full_path.lower())[1].lower() == '.shp'\
                   and (path.isfile('{0}.dbf'.format(full_path[:-4]))
                        or path.isfile('{0}.DBF'.format(full_path[:-4])))\
                   and (path.isfile('{0}.shx'.format(full_path[:-4]))
                        or path.isfile('{0}.SHX'.format(full_path[:-4]))):
                    """ listing compatible shapefiles """
                    # add complete path of shapefile
                    self.li_shp.append(full_path)
                elif path.splitext(full_path.lower())[1] == '.tab'\
                    and (path.isfile(full_path[:-4] + '.dat')
                         or path.isfile(full_path[:-4] + '.DAT'))\
                    and (path.isfile(full_path[:-4] + '.map')
                         or path.isfile(full_path[:-4] + '.MAP'))\
                    and (path.isfile(full_path[:-4] + '.id')
                         or path.isfile(full_path[:-4] + '.ID')):
                    """ listing MapInfo tables """
                    # add complete path of MapInfo file
                    self.li_tab.append(full_path)
        # stopping the progress bar
        self.prog_layers.stop()
        # Lists ordering and tupling
        self.li_shp.sort()
        self.li_shp = tuple(self.li_shp)
        self.li_tab.sort()
        self.li_tab = tuple(self.li_tab)
        # setting the label text and activing the buttons
        self.status.set(unicode(len(self.li_shp)) + u' shapefiles - '
                        + unicode(len(self.li_tab)) + u' tables (MapInfo) - '
                        + unicode(self.num_folders) + self.blabla.get('log_numfold'))
        self.browsetarg.config(state=ACTIVE)
        self.val.config(state=ACTIVE)
        # End of function
        return foldertarget, self.li_shp, self.li_tab

    def li_profiles(self, lang):
        u"""
        list profiles already existing
        """
        # reseting global variable
        self.li_pro = []
        # Looping in folders structure
        folder_profiles = path.join('locale/', lang + '/profiles/')
        self.li_pro = [lg[:-4] for lg in listdir(folder_profiles)]
        self.li_pro.append(self.blabla.get('tab1_new'))
        # End of function
        return folder_profiles, self.li_pro

    def li_rekurs(self, lang):
        u"""
        List recurring attributes that already exist in the selected language
        """
        # clearing the text dictionary
        self.dico_rekur.clear()
        champis = path.abspath(r'locale/{0}/champignons_{0}.xml'.format(lang))
        xml = ET.parse(champis)
        # Looping and gathering texts from the xml file
        for elem in xml.findall('champ'):
            rek_name = elem.find('intitule').text
            rek_desc = elem.find('description').text
            rek_kass = elem.find('case').text
            rek_stat = elem.find('stats').text
            self.dico_rekur[rek_name] = rek_desc, rek_kass, rek_stat
        self.dico_rekur[self.blabla.get('tab3_new')] = '', 0, 0
        # updating the GUI
        self.update()
        # End of function
        return self.dico_rekur

    def edit_rekur(self, event):
        u"""
        preparing the form to edit a recurring attribute
        """
        rekur = event.widget.get()
        # deactivate the selector
        self.ddl_attr.config(state=DISABLED)
        # activate the form
        self.alter_state(self.FrRekur, NORMAL)
        # change to the new language selected
        self.tab3_ENnom.insert(0, rekur)
        self.tab3_TXdesc.insert(1.0, self.dico_rekur.get(rekur)[0])
        self.def_kass.set(self.dico_rekur.get(rekur)[1])
        self.def_stat.set(self.dico_rekur.get(rekur)[2])
        # End of function
        return self.dico_rekur

    def save_rekur(self):
        u""" save the recurring attribute edited """
        # check if the attribute already exists
        if self.tab3_ENnom.get() in self.dico_rekur:
            if not askyesno(title=self.blabla.get('tab3_alert_exist1'),
                            message=self.blabla.get('tab3_alert_exist2')):
                return
            else:
                pass
        else:
            pass

        # save
        self.dico_rekur[self.tab3_ENnom.get()] = self.tab3_TXdesc.get(1.0, END).rstrip(),\
                                                 self.def_kass.get(),\
                                                 self.def_stat.get()
        # reset the form
        self.tab3_ENnom.delete(0, END)
        self.tab3_TXdesc.delete(1.0, END)
        self.def_kass.set(0)
        self.def_stat.set(0)
        # deactivate the form
        self.alter_state(self.FrRekur, DISABLED)
        # updating the dropdown list
        self.ddl_attr.config(state=NORMAL)
        self.ddl_attr.delete(0, END)
        self.ddl_attr['values'] = self.dico_rekur.keys()

        # End of function
        return self.dico_rekur

    def del_rekur(self):
        u""" delete the selected recurring attribute """
        # reactivate the selector
        self.ddl_attr.config(state=ACTIVE)
        self.dico_rekur.pop(self.ddl_attr.get())

        self.ddl_attr.delete(0, END)
        self.ddl_attr['values'] = self.dico_rekur.keys()
        # reset the form
        self.tab3_ENnom.delete(0, END)
        self.tab3_TXdesc.delete(1.0, END)
        self.def_kass.set(0)
        self.def_stat.set(0)
        # deactivate the form
        self.alter_state(self.FrRekur, DISABLED)

        # End of function
        return self.dico_rekur

    def saveas_rekurs(self, lang):
        u""" save the recurring fields into the file dedicated """
        rekur = ET.Element(u'champs')
        xml_path = r'locale/{0}/champignons_{0}.xml'.format(lang)
        self.dico_rekur.pop(self.blabla.get('tab3_new'))
        with open(xml_path, 'w') as champis:
            for elem in self.dico_rekur.keys():
                rek = ET.SubElement(rekur, u'champ')
                # name of recurring attribute
                rek_name = ET.SubElement(rek, u'intitule')
                rek_name.text = elem
                # description of recurring attribute
                rek_desc = ET.SubElement(rek, u'description')
                rek_desc.text = self.dico_rekur.get(elem)[0]
                # stats option of recurring attribute
                rek_stats = ET.SubElement(rek, u'stats')
                rek_stats.text = unicode(self.dico_rekur.get(elem)[1])
                # case sensitive option of recurring attribute
                rek_case = ET.SubElement(rek, u'case')
                rek_case.text = unicode(self.dico_rekur.get(elem)[2])

        # creating the xml tree
        out_rekurs = ET.ElementTree(rekur)
        # saving it
        out_rekurs.write(xml_path,
                         encoding='utf-8',
                         xml_declaration='version="1.0"',
                         method='xml')

        # End of function
        return self.dico_rekur

    def select_profil(self, event):
        """ when a profile is selected... """
        profsel = event.widget.get()
        # if user wants to use an existing profile or create a new one
        if profsel == self.blabla.get('tab1_new'):
            self.val.config(text=self.blabla.get('tab1_crprofil'))
        else:
            self.val.config(text=self.blabla.get('tab1_go'))

        # end of function
        return self.val

    def recup_profil(self, lang):
        """ get the information from the profile selected """
        # clearing the profile dictionary
        self.dico_profil.clear()
        # specific path to profile file
        path_profile = path.join('locale/{0}/profiles/{1}.xml'.format(lang,
                                                                      self.ddl_profil.get()))
        with open(path_profile, 'r') as profile:
            # open xml parser
            xml = ET.parse(profile)
            # basic informations
            self.dico_profil['description'] = xml.find('description').text
            self.dico_profil['sources'] = xml.find('sources').text
            self.dico_profil['url'] = xml.find('url').text
            self.dico_profil['url_label'] = xml.find('url_label').text
            self.dico_profil[u'diffusion'] = xml.find('diffusion').text
            # data language
            lang_data = xml.find(u'lang_data')
            self.dico_profil[u"lang_data"] = lang_data.find(u'name').text
            # metadata language
            lang_metad = xml.find(u'lang_metad')
            self.dico_profil[u"lang_md"] = lang_metad.find(u'name').text
            # diffusion constraints
            diff = xml.find(u'diffusion')
            self.dico_profil['diffusion'] = diff.find(u'name').text
            # update rythm
            rythm = xml.find(u'rythm')
            self.dico_profil['rythm'] = rythm.find(u'name').text
            # INSPIRE themes
            themes = xml.find('themesinspire')
            li_themesinspire = [theme.find('name').text for theme in themes.findall('theme')]
            self.dico_profil['themesinspire'] = li_themesinspire
            # custom keywords
            keywords = xml.find('keywords')
            li_keywords = [keyword.find('name').text for keyword in keywords.findall('keyword')]
            self.dico_profil['keywords'] = li_keywords
            # places keywords
            geokeywords = xml.find('geokeywords')
            li_geokeywords = [geokeyword.find('name').text for geokeyword in geokeywords.findall('geokeyword')]
            self.dico_profil['geokeywords'] = li_geokeywords
            # contacts
            contacts = xml.find(u'contacts')
            # point of contact
            cont = contacts.find(u'pointdecontact')
            self.dico_profil[u'cont_name'] = cont.find(u'name').text
            self.dico_profil[u'cont_orga'] = cont.find(u'org').text
            self.dico_profil[u'cont_mail'] = cont.find(u'mail').text
            self.dico_profil[u'cont_role'] = cont.find(u'role').text
            self.dico_profil[u'cont_func'] = cont.find(u'func')[0].text
            self.dico_profil[u'cont_street'] = cont.find(u'street').text
            self.dico_profil[u'cont_city'] = cont.find(u'city').text
            self.dico_profil[u'cont_cp'] = cont.find(u'cp').text
            self.dico_profil[u'cont_country'] = cont.find(u'country').text
            self.dico_profil[u'cont_phone'] = cont.find(u'tel').text
            # second contact (responsable, etc.)
            resp = contacts.find(u'second_contact')
            self.dico_profil[u'resp_name'] = resp.find(u'name').text
            self.dico_profil[u'resp_orga'] = resp.find(u'org').text
            self.dico_profil[u'resp_mail'] = resp.find(u'mail').text
            self.dico_profil[u'resp_role'] = resp.find(u'role').text
            self.dico_profil[u'resp_func'] = resp.find(u'func')[0].text
            self.dico_profil[u'resp_street'] = resp.find(u'street').text
            self.dico_profil[u'resp_city'] = resp.find(u'city').text
            self.dico_profil[u'resp_cp'] = resp.find(u'cp').text
            self.dico_profil[u'resp_country'] = resp.find(u'country').text
            self.dico_profil[u'resp_phone'] = resp.find(u'tel').text
        # End of function
        return self.dico_profil

    def recup_help(self, lang):
        """ get the help texts """
        # specific path to xml file
        path_help = 'locale/%s/help_%s.xml' % (lang, lang)
        # reading and parsing the xml
        with open(path_help, 'r') as source:
            xml = ET.parse(source)                  # xml cursor
            for tooltip in xml.findall('tooltip'):
                idu = tooltip.find('id').text
                ref = tooltip.find('ref').text
                txt = tooltip.find('txt').text
                img = tooltip.find('image').text
                doc = tooltip.find('doc').text
                # fillfulling the INSPIRE dictionary
                self.dico_help[int(idu)] = ref, txt, img, doc
        # End of function
        return self.dico_help

    def process(self):
        u""" launch the different processes """
        # display the main tab
        self.nb.select(0)
        # check option selected: process or create a new profile
        if self.ddl_profil.get() == self.blabla.get('tab1_new'):
            # launching the profile form
            self.logger.info('Creation of a new profile')
            tr_profile = threading.Thread(target=NewProfile,
                                          args=(self.blabla,
                                                self.ddl_lang.get(),
                                                self.dico_help,
                                                self.li_pro))
            tr_profile.daemon = True
            tr_profile.run()
            # NewProfile(self.blabla, self.ddl_lang.get(), self.li_pro)
            self.li_profiles(self.ddl_lang.get())   # updating the dropdow list
            self.ddl_profil['values'] = self.li_pro
            return
        # check if the target folder has been selected
        if self.target.get() == "":
            info(title=self.blabla.get('info_blanktarget1'),
                 message=self.blabla.get('info_blanktarget2'))
            return
        # check if a profile has been selected
        if self.ddl_profil.get() == "":
            info(title=self.blabla.get('info_blankprofile1'),
                 message=self.blabla.get('info_blankprofile2'))
            return
        # disabling others GUI parts
        self.tab_globals.focus_force()
        self.alter_state(self.FrPath, DISABLED)

        # check if there are some layers into the folder structure
        if len(self.li_shp) + len(self.li_tab) == 0:
            self.logger.warning("No geofiles found in the folder structure")
            self.status.set(self.blabla.get('log_nodata'))
            return
        # specific variables
        dest = path.join(self.target.get(), 'metadator')
        if not path.isdir(dest):    # test if folder already exists
            mkdir(dest, 0777)       # if not, we create it
        # getting profile informations
        self.recup_profil(self.ddl_lang.get())
        # saving options in a separated thread
        tr_options = threading.Thread(target=self.save_settings)
        tr_options.daemon = True
        tr_options.start()
        self.logger.info('Current options saved')
        # saving recurring fiels in a separated thread
        tr_rekurs = threading.Thread(target=self.saveas_rekurs,
                                     args=(self.ddl_lang.get(), ))
        tr_rekurs.daemon = True
        tr_rekurs.start()
        # configuring the progression bar
        self.prog_layers["maximum"] = len(self.li_shp) + len(self.li_tab)
        self.prog_layers["value"]
        # Processing the shapefiles
        self.logger.info('\tStart processing the files')
        for shp in self.li_shp:
            """ looping on shapefiles list """
            self.logger.info('Processing: %s' % path.basename(shp))
            self.status.set(path.basename(shp))
            # reset recipient data
            self.dico_layer.clear()
            self.dico_fields.clear()
            # getting separated process threads
            Read_SHP(shp,
                     self.dico_layer,
                     self.dico_fields,
                     'shape',
                     self.blabla)
            # checking layer error
            if self.dico_layer.get('error'):
                # increment the progress bar
                self.prog_layers["value"] = self.prog_layers["value"] + 1
                self.update()
                self.logger.warning('This shape has an issue: %s' % shp)
                continue
            # getting fields statistics only if needed
            if self.def_doc.get() == 1 or self.def_xls.get() == 1 or self.def_odt.get() == 1:
                StatsFields(shp, self.dico_fields, self.dico_rekur, self.blabla)
            # export according to options selected
            if self.def_doc.get() == 1:
                ExportToHTML(dest,
                             self.dico_layer,
                             self.dico_fields,
                             self.dico_profil,
                             self.dico_rekur,
                             self.blabla)
                html_path = path.join(dest,
                                      "{0}_MD.html".format(self.dico_layer['name'][:-4]))
                ExportToDocX(html_path, dest)
            if self.def_xls.get() == 1:
                ExportToXLS(dest,
                            self.dico_layer,
                            self.dico_fields,
                            self.dico_profil,
                            self.dico_rekur,
                            self.blabla)
            if self.def_xml.get() == 1:
                ExportToXML(dest,
                            self.dico_layer,
                            self.dico_profil,
                            '',
                            self.blabla,
                            1,
                            0)
            if self.def_odt.get() == 1:
                ExportToODT(dest,
                            self.dico_layer,
                            self.dico_fields,
                            self.dico_profil,
                            self.dico_rekur,
                            self.blabla)
            # increment the progress bar
            self.prog_layers["value"] = self.prog_layers["value"] + 1
            self.update()

        # Processing the MapInfo tables
        for tab in self.li_tab:
            """ looping on MapInfo tables list """
            self.logger.info('Processing: %s' % path.basename(tab))
            self.status.set(path.basename(tab))
            # reset recipient data
            self.dico_layer.clear()
            self.dico_fields.clear()
            # getting the informations
            Read_TAB(tab,
                     self.dico_layer,
                     self.dico_fields,
                     'table',
                     self.blabla)
            # checking layer error
            if self.dico_layer.get('error'):
                self.logger.warning('This MapInfo table has an issue: %s' % tab)
                # increment the progress bar
                self.prog_layers["value"] = self.prog_layers["value"] +1
                self.update()
                continue
            # getting fields statistics only if needed
            if self.def_doc.get() == 1 \
               or self.def_xls.get() == 1 \
               or self.def_odt.get() == 1:
                StatsFields(tab, self.dico_fields, self.dico_rekur, self.blabla)
            # export according to options selected
            if self.def_doc.get() == 1:
                ExportToHTML(dest,
                             self.dico_layer,
                             self.dico_fields,
                             self.dico_profil,
                             self.dico_rekur,
                             self.blabla)
                html_path = path.join(dest,
                                      "{0}_MD.html".format(self.dico_layer['name'][:-4]))
                ExportToDocX(html_path, dest)
            if self.def_xls.get() == 1:
                ExportToXLS(dest,
                            self.dico_layer,
                            self.dico_fields,
                            self.dico_profil,
                            self.dico_rekur,
                            self.blabla)
            if self.def_xml.get() == 1:
                ExportToXML(dest,
                            self.dico_layer,
                            self.dico_profil,
                            '',
                            self.blabla,
                            1,
                            0)
            if self.def_odt.get() == 1:
                ExportToODT(dest,
                            self.dico_layer,
                            self.dico_fields,
                            self.dico_profil,
                            self.dico_rekur,
                            self.blabla)
            # increment the progress bar
            self.prog_layers["value"] = self.prog_layers["value"] + 1
            self.update()

        # Word catalog export
        if self.def_doc.get() == 1 and self.def_cat.get() == 1:
            self.status.set(self.blabla.get('info_cat'))
            self.update()
            DocxMerger(dest, '00_Metadator_Catalog', 'metadator_')
        else:
            pass

        # final message
        # msg = self.blabla.get('info_end2') + self.blabla.get('info_end3')
        # info(title=self.blabla.get('info_end'), message=msg)
        # opening the destination folder
        self.open_dir_file(dest)
        # cleaning up
        logging.info('Hurray! It worked! All seem to have been fine!')
        self.destroy()
        # end of function
        return

    def open_dir_file(self, target):
        """
        Open a file or a directory in the explorer of the operating system
        http://sametmax.com/ouvrir-un-fichier-avec-le-bon-programme-en-python
        """
        # check if the file or the directory exists
        if not path.exists(target):
            raise IOError('No such file: {0}'.format(target))

        # check the read permission
        if not access(target, R_OK):
            raise IOError('Cannot access file: {0}'.format(target))

        # open the directory or the file according to the os
        if opersys == 'win32':  # Windows
            proc = startfile(target)

        elif opersys.startswith('linux'):  # Linux:
            proc = subprocess.Popen(['xdg-open', target],
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE)

        elif opersys == 'darwin':  # Mac:
            proc = subprocess.Popen(['open', '--', target],
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE)

        else:
            raise NotImplementedError(
                "Your `%s` isn't a supported operating system`." % opersys)

        # end of function
        return proc