예제 #1
0
def addNew():
    if (len(contactNo1Var.get()) == 0):
        messagebox.showwarning("Warning", "Fill in missing details")
    elif (len(contactNo1Var.get()) != 0):
        noContacts_Lbl.configure(text="All Contacts")
        Backend.addRec(contactTypeVar.get(), contactNo1Var.get(),nameVar.get()\
            ,cityVar.get(),addressVar.get(),emailVar.get())
        messagebox.showinfo("Contact Management System",
                            "Contact added successfully !")
        clear()
예제 #2
0
def Delete():
    if (len(contactNo1Var.get()) == 0 and len(nameVar.get()) == 0):
        messagebox.showwarning("Warning",
                               "Fill in ContactNo. or Name to delete")
    elif (len(contactNo1Var.get()) != 0 or len(nameVar.get()) != 0):
        Backend.deleteRec(contactNo1Var.get(), nameVar.get())
        messagebox.showinfo("Contact Management System",
                            "Contact deleted successfully !")
        clear()
        display()
예제 #3
0
    def getRecommendations(self):
        pauseMenu = tk.Toplevel(self.root)
        pauseMenu.title("")
        width, height = 200, 100
        x = int(self.root.winfo_screenwidth() / 2 - width / 2)
        y = int(self.root.winfo_screenheight() / 2 - height / 2)
        pauseMenu.geometry('%dx%d+%d+%d' % (width, height, x, y))
        pauseMenu.resizable(False, False)
        pauseMenu.attributes('-topmost', True)
        label = tk.Label(
            pauseMenu,
            text="\nGenerating recommendations...\n(takes ~15 seconds)")
        label.pack()
        label.wait_visibility()
        pauseMenu.update()

        if self.titleTree.focus() != '':
            item = self.titleTree.item(self.titleTree.focus())

        else:
            item = self.titleTree.item('0')

        titleID = item['values'][0]
        titleName = item['values'][1]
        medium = item['tags'][0]

        userList = Backend.getSimilarUsers(titleID, medium)

        if len(userList) == 0:
            tk.messagebox.showinfo(title='No reference data.',
                                   message=str(titleName) +
                                   " has no user reviews to reference.",
                                   parent=pauseMenu)
            pauseMenu.destroy()
            return

        recommendedList = Backend.getRecommendedList(userList, self._settings,
                                                     medium)

        if len(recommendedList) == 0:
            tk.messagebox.showinfo(
                title='No results.',
                message=
                "There were no results with the current search settings.",
                parent=pauseMenu)
            pauseMenu.destroy()
            return

        if titleName in recommendedList:
            recommendedList.remove(titleName)

        self._displayRec(recommendedList, titleName, self._settings)

        pauseMenu.destroy()
 def addData():
     if (len(stdID.get()) != 0):
         Backend.addstdRec(stdID.get(),
                           first_name.get(), sur_name.get(),
                           date_of_birth.get(), age.get(), gender.get(),
                           address.get(), mobile_no.get())
         student_list.delete(0, END)
         student_list.insert(END, stdID.get(), first_name.get(),
                             sur_name.get(), date_of_birth.get(),
                             age.get(), gender.get(), address.get(),
                             mobile_no.get())
예제 #5
0
    def getreply(self, event=None):
        usertextstr = self.userinputentry.get()
        self.printmessage(usertextstr, "right")

        backend = Backend()
        replytext = backend.process(usertextstr)

        self.userinputentry.delete(0, 'end')
        self.userinputentry.focus()

        self.printmessage(replytext, "left")
def delete_command():

    dd0, dd11, text1, text2, text3, dd1, dd2, text4, text5, text6, text7, text8, text9 = getdata(
    )

    if dd0 != "" or dd11 == "" or text1 == "":
        tdsno = dd0 + "_" + text1 + "_" + dd11

    Backend.delete(tdsno)
    view_command()
    usermsg("Data successfully deleted from the database", "Green")
예제 #7
0
def add_command():
    Backend.insert(Student_Name_text.get(), Hours_bought_text.get(),
                   First_class_text.get(),
                   Grade_text.get(), Subject1_text.get(), Subject2_text.get(),
                   Subject3_text.get(), Days_of_attendace_text.get(),
                   Hours_of_attendance_text.get(), Comments_text.get())
    list1.delete(0, END)
    list1.insert(END, Student_Name_text.get(), Hours_bought_text.get(),
                 First_class_text.get(), Grade_text.get(), Subject1_text.get(),
                 Subject2_text.get(), Subject3_text.get(),
                 Days_of_attendace_text.get(), Hours_of_attendance_text.get(),
                 Comments_text.get())
def Update_Points(game_window, player, comp):

    global points

    points += 1
    # sets the variable string into the new points score
    display_points.set(str(points))
    game_window.update()

    # Inserting game details to history
    user_id = Backend.Get_User_id(user_name)
    Backend.insert_game(user_id, options[player], options[comp], "User")
예제 #9
0
def check_group(message):
    group = str(message.text)
    group_id = bk.get_group_id(group)
    if group_id == 'Ошибка, такой группы нет':
        bot.send_message(message.chat.id,
                         'Ошибка, такой группы нет, введи группу снова')
    else:
        bk.izm(str(message.chat.id), str(message.text))
        bot.send_message(
            message.chat.id,
            'Можешь посмотреть свое расписание на завтра или на следующий день с помощью кнопок внизу \n'
            'Чтобы сменить группу, просто введи название другой группы\n',
            reply_markup=keyboard_func)
def add_command():
    try:
        list1.delete(*list1.get_children())
    except:
        pass
    Backend.connect1()
    Backend.connect2()

    dd0, dd11, text1, text2, text3, dd1, dd2, text4, text5, text6, text7, text8, text9 = getdata(
    )

    if dd0 != "" or dd11 != "" or text1 != "":
        tdsno = dd0 + "_" + text1 + "_" + dd11

    myList = Backend.backup1("%" + dd0 + "_" + text1 + "%")

    err = Backend.insert(var0.get(), TDS_text.get(), var11.get(), tdsno, text2,
                         text3, dd1, dd2, text4, text5, text6, text7, text8,
                         text9)

    if err == "22007" or err == "22P02" or err == "23502":
        usermsg(
            "Error Possibilities:\n 1. All entries are mandatory \n 2. Data format error",
            "Red")
        #popupmsg("ERROR", "Error Possibilities:\n 1. All entries are mandatory \n 2. Data format error")
    elif err == "22008":
        usermsg("Date format entered seems to be incorrect", "Red")
        #popupmsg("ERROR", "Date format entered seems to be incorrect")
    elif err == "23505":
        usermsg(
            "There is already data with the given TDS No.\n TDS No. should be unique.",
            "Red")
        #popupmsg("ERROR", "There is already data with the given TDS No.\n TDS No. should be unique.")
    else:
        usermsg("Data successfully added to the database", "Green")
        for row in range(len(myList)):
            Backend.backup2(myList[row][0], myList[row][1], myList[row][2],
                            myList[row][3], myList[row][4], myList[row][5],
                            myList[row][6], myList[row][7], myList[row][8],
                            myList[row][9], myList[row][10], myList[row][11],
                            myList[row][12], myList[row][13])
            Backend.backup3(myList[row][3])

        list1.insert("",
                     "end",
                     values=(tdsno, start_text.get(), end_text.get(),
                             var1.get(), var2.get(), nonexp_text.get(),
                             Onexp_text.get(), Offexp_text.get(),
                             Offper_text.get(), TarOffper_text.get(),
                             remarks_text.get()))
        clear_data()
예제 #11
0
 def OnSavePlanButtonButton(self, event):
     self.InputLabel.SetLabel('Saving Test Cases...')
     name = self.PlanName.GetValue()
     pickname = name
     try:
         PickleLoad = pickle.load(open('SavedTestPlan.pkl', 'rb'))
     except:
         PickleLoad = {}
     #print "Pickle Load: ", PickleLoad
     name = "*API* " + name
     #print name
     #print self.CurrentProjectName
     #print "Prefix=",self.CurrentProjectPrefix
     response = Backend.CreateTestPlan(name, self.CurrentProjectName)
     #print response
     response_id = response[0]['id']
     response = Backend.CreateBuild(response_id, "Auto Build",
         "This build was created automatically by the API to avoid execution issues...")
     #print "Build creation response...", response
     #print "Response ID: ", response_id
     i = 0
     for case in self.QueueIDList:
         summary = Backend.GetCaseFromID(case)
         #print case, ":", summary
         external_id = summary[0]['tc_external_id']
         external_id = self.CurrentProjectPrefix + "-" + external_id
         #print "New external id...", external_id
         version = summary[0]['version']
         version = int(version)
         #print "external id, version", external_id, version
         print "args = ", (self.CurrentProject,
                     response_id, external_id, version)
         response = Backend.AddCaseToTestPlan(self.CurrentProject,
                     response_id, external_id, version)
         #print response
         i = i + 1
         total = len(self.QueueIDList)
         
         progress = float(i)/float(total)
         progress = progress * 100.0
         #print progress
         self.SavingGauge.SetValue(progress)
     PlanPickle = {'testplanid':response_id,
                     'cases': self.QueueIDList,
                     'project': self.CurrentProject }
     PickleLoad[pickname] = PlanPickle
     #print "Plan Pickle", PlanPickle
     pickle.dump(PickleLoad, open('SavedTestPlan.pkl', 'wb'))
     self.SavingGauge.SetValue(0)
     self.InputLabel.SetLabel('Test Case Name')
def RPS_Algo(comp, player, options, game_window, user_name):

    try:

        global points

        if options[player] == "Rock" and options[comp] == "Scissors":
            Update_Points(game_window, player, comp)

        elif options[player] == "Paper" and options[comp] == "Rock":
            Update_Points(game_window, player, comp)

        elif options[player] == "Scissors" and options[comp] == "Paper":
            Update_Points(game_window, player, comp)

        elif player == comp:
            user_id = Backend.Get_User_id(user_name)
            Backend.insert_game(user_id, options[player], options[comp], "Tie")
            pass

        else:
            # Player lost so score is reset to 0
            Backend.insert_User(user_name, points)
            points = 0
            display_points.set(str(points))
            game_window.update()

            # Inserting game details to history
            user_id = Backend.Get_User_id(user_name)
            Backend.insert_game(user_id, options[player], options[comp],
                                "Computer")

    except Exception as e:
        print(e)
예제 #13
0
 def OnLoadTestPlanButton(self, event):
     #print "Current Project", self.CurrentProject
     self.dlg3 = Dialog3.Dialog3(self)
     try:
         self.dlg3.ShowModal()
     finally:
         try:
             self.CurrentPlanDetails = self.dlg3.CurrentPlanDetails
             self.CasesList = self.dlg3.CaseList
             #print self.CurrentPlanDetails
             self.QueueList = []
             self.QueueIDList = []
             self.CasesList = []
             self.CasesIDList = []
             self.ExecutionList.Set(self.QueueList)
             self.CaseList.Set(self.CasesList)
             self.CurrentProject = self.CurrentPlanDetails['project']
             self.CurrentProjectName = self.ProjectName[self.ProjectIndex.index(self.CurrentProject)]
             self.CurrentProjectPrefix = self.ProjectPrefix[self.ProjectIndex.index(self.CurrentProject)]
             self.CurrentCount = Backend.GetCaseCountForProject(self.CurrentProjectName)
             Suites = Backend.GetSuitesInProject(self.CurrentProject)
             self.SuiteList = []
             self.SuiteIDList = []
             for suite in Suites:
                 #print suite['name']
                 self.SuiteList.append(suite['name'])
                 self.SuiteIDList.append(suite['id'])
             self.SuitesList.Set(self.SuiteList)
             self.RankTracker = [self.CurrentProjectName]
             self.RankIDTracker = [self.CurrentProject]
             self.UpdateSuiteListLabel()
             choice = self.ExecutionList.GetSelection()
             self.QueueIDList = self.CurrentPlanDetails['cases']
             self.QueueList = []
             plan = self.CurrentPlanDetails['testplanid']
             testplancases = Backend.GetCasesFromPlan(plan)
             for i in self.QueueIDList:
                 #print i
                 self.QueueList.append(testplancases[i][0]['name'])
             #print self.CurrentProjectName, self.CurrentProjectPrefix
             #print self.QueueList
             self.LoadQueueList = self.QueueList
             self.LoadQueueIDList = self.QueueIDList
             self.ExecutionList.Set(self.QueueList)
             
             self.UpdateQueueCount()
             
             
         finally:
             pass
예제 #14
0
    def saveSettings(self, event=None):
        try:
            self.settings.minYear = int(
                self.minYearBox.get('1.0', 'end').rstrip())
            self.settings.maxYear = int(
                self.maxYearBox.get('1.0', 'end').rstrip())

            if self.settings.maxYear < self.settings.minYear:
                temp = self.settings.maxYear
                self.settings.maxYear = self.settings.minYear
                self.settings.minYear = temp

            username = self.usernameBox.get('1.0', 'end').rstrip()

            if username != self.settings.MALUsername:
                pauseMenu = tk.Toplevel(self.root)
                pauseMenu.title("")
                width, height = 200, 100
                x = int(self.root.winfo_screenwidth() / 2 - width / 2)
                y = int(self.root.winfo_screenheight() / 2 - height / 2)
                pauseMenu.geometry('%dx%d+%d+%d' % (width, height, x, y))
                pauseMenu.resizable(False, False)
                pauseMenu.attributes('-topmost', True)
                label = tk.Label(
                    pauseMenu,
                    text=
                    "\nRetrieving user list...\n(big lists take longer to retrieve)"
                )
                label.pack()
                label.wait_visibility()
                pauseMenu.update()

                self.settings.MALUsername = username
                Backend.filterUserList(self.settings)

                pauseMenu.destroy()

            self.settingsWindow.destroy()

        except ValueError:
            tk.messagebox.showinfo(title='Invaild Date',
                                   message='Please enter a valid date range.',
                                   parent=self.settingsWindow)
        except:
            pauseMenu.destroy()
            tk.messagebox.showinfo(title='Username Error',
                                   message='Failed to retrieve user list.',
                                   parent=self.settingsWindow)
예제 #15
0
 def OnCreateSuiteButtonButton(self, event):
     if self.CurrentProject != 'x':
         print "Create Suite", self.CurrentProject
         self.dlg4 = Dialog4.Dialog4(self)
         try:
             self.dlg4.ShowModal()
         finally:
             try:
                 self.Entry = self.dlg4.Entry
                 print self.Entry
                 print "Should be closed"
                 print len(self.RankIDTracker)
                 if len(self.RankIDTracker) == 1:
                     print "Top Level Suite"
                     parentid = False
                 else:
                     parentid = self.RankIDTracker[-1]
                 response = Backend.CreateTestSuite(self.CurrentProject, 
                             self.Entry[0], self.Entry[1], parentid)
                 print response
                 response_id = response[0]['id']
                 self.SuiteList.append(self.Entry[0])
                 self.SuiteIDList.append(response_id)
                 self.SuitesList.Set(self.SuiteList)
             finally:
                 pass
예제 #16
0
def viewCommand():
    #Ensures the list box is empty before displaying records
    list1.delete(0, END)

    #Iterates through records and appends them to list box
    for row in Backend.view():
        list1.insert(END, row)
    def generateCode(self):
        gemmName = "gemm_" + str(self.m_context["nVar"]) + "_" + str(
            self.m_context["nDof"]) + "_" + str(self.m_context["nDof"])
        self.m_context["gemm_gradQ_x"] = gemmName + "_gradQ_x"
        self.m_context["gemm_gradQ_y"] = gemmName + "_gradQ_y"
        self.m_context["gemm_gradQ_z"] = gemmName + "_gradQ_z"
        if (self.m_context["isLinear"]):
            self.m_context["ncpOutputShift"] = Backend.getSizeWithPadding(
                self.m_context["nVar"] * self.m_context["nDim"]
            )  #shift used to split the tmpArray into input and output for NCP
            # size of the tmpArray
            self.m_context["tmpArraySize"] = max((self.m_context["nDof"]*self.m_context["nVarPad"] if self.m_context["useFlux"]          else 0), \
                                                 (self.m_context["nVar"]*self.m_context["nDim"]    if self.m_context["useMaterialParam"] else 0), \
                                                 (2*self.m_context["ncpOutputShift"]               if self.m_context["useNCP"]           else 0))
            self.m_context["gemm_flux_x"] = gemmName + "_flux_x"
            self.m_context["gemm_flux_y"] = gemmName + "_flux_y"
            self.m_context["gemm_flux_z"] = gemmName + "_flux_z"
            TemplatingUtils.renderAsFile(
                "spaceTimePredictorLinear_cpp.template",
                self.m_filename_linear, self.m_context)
        else:
            self.m_context["nDof_seq"] = range(0, self.m_context["nDof"])
            self.m_context["gemm_rhs_x"] = gemmName + "_rhs_x"
            self.m_context["gemm_rhs_y"] = gemmName + "_rhs_y"
            self.m_context["gemm_rhs_z"] = gemmName + "_rhs_z"
            self.m_context["gemm_lqi"] = gemmName + "_lqi"

            TemplatingUtils.renderAsFile(
                "spaceTimePredictorNonLinear_cpp.template",
                self.m_filename_nonlinear, self.m_context)

        # generates gemms
        if (self.m_context["useLibxsmm"]):
            self.generateGemms()
예제 #18
0
def cal(c):
    result, key, step = DetailedTelegramCalendar(locale='ru',
                                                 calendar_id=2).process(c.data)
    if not result and key:
        bot.edit_message_text(f"Выберите конец периода",
                              c.message.chat.id,
                              c.message.message_id,
                              reply_markup=key)
    elif result:
        bot.edit_message_text(f"Конец периода: {result}", c.message.chat.id,
                              c.message.message_id)
        finish_date = result.strftime("%Y.%m.%d")
        group_id = bk.output(c.message.chat.id)
        global start_date
        s = bk.get_schedule(str(group_id), start_date, finish_date)
        bot.send_message(c.message.chat.id, s)
예제 #19
0
    def searchMangaTitle(self):
        pauseMenu = tk.Toplevel(self.root)
        pauseMenu.title("")
        width, height = 200, 100
        x = int(self.root.winfo_screenwidth() / 2 - width / 2)
        y = int(self.root.winfo_screenheight() / 2 - height / 2)
        pauseMenu.geometry('%dx%d+%d+%d' % (width, height, x, y))
        pauseMenu.resizable(False, False)
        pauseMenu.attributes('-topmost', True)
        label = tk.Label(pauseMenu, text="\nSearching manga...")
        label.pack()
        label.wait_visibility()
        pauseMenu.update()

        for item in self.titleTree.get_children():
            self.titleTree.delete(item)

        query = self.searchBox.get('1.0', 'end').rstrip()
        try:
            results = Backend.searchTitles(query, "manga")

            for x in range(len(results)):
                self.insertIntoTree(x, results[x], "manga")

            self.searchBox.delete('1.0', 'end')

            pauseMenu.destroy()

        except:
            tk.messagebox.showinfo(title='No results.',
                                   message="There were no search results.",
                                   parent=pauseMenu)
            pauseMenu.destroy()
예제 #20
0
def search_command():
    app.listClientes.delete(0, END)
    rows = core.search(app.txtNome.get(), app.txtScore.get(),
                       app.txtEmail.get(), app.txtCPF.get())
    for r in rows:
        app.listClientes.insert(END, r)
    return print(rows)
예제 #21
0
def search_command():
    list.delete(0, END)
    for row in Backend.search(Name_text.get(), RollNo_text.get(),
                              Branch_text.get(), Grade_text.get(),
                              ContactNo_text.get(), EmailId_text.get(),
                              Address_text.get()):
        list.insert(END, row)
 def searchDatabase():
     student_list.delete(0, END)
     for row in Backend.searchData(stdID.get(), first_name.get(),
                                   sur_name.get(), date_of_birth.get(),
                                   age.get(), gender.get(),
                                   address.get(), mobile_no.get()):
         student_list.insert(END, row, str(""))
예제 #23
0
def search_command():
    app.listPacientes.delete(0, END)
    rows = core.search(app.txtNome.get(), app.txtCodigo.get(),
                       app.txtEndereco.get(), app.txtCPF.get(),
                       app.txtObservacao.get())
    for r in rows:
        app.listClientes.insert(END, r)
예제 #24
0
 def all_banks(dates_mass1):
     filename = sys.path[0] + "\\main.py"
     csv_p = filename.replace("\\", "/")
     for name in dates_mass1:
         # Параищоыикщпиыщшкп фигня с переводом дбф в цсв и путь найти
         dbf_p = csv_p[:-15] + "Data/"+name+".dbf"
         csv_path = Backend.dbf_to_csv(dbf_p)
         wb = Workbook()
         ws = wb.active
         prev_row = 1
         i = 1
         ws.append(["rot"])
         ########
         with open(csv_path, 'r') as f:
             for row in csv.reader(f, dialect='excel', delimiter=','):
                 if row[0] != prev_row:
                     ws = wb.create_sheet(str(row[0]))
                     i = 1
                     prev_row = row[0]
                     ws.append(row)
                 elif row[0] == prev_row:
                     ws.append(row)
                     ws.row_dimensions[i].hidden = False
                 i += 1
         wb.save(csv_p[:-15] + 'Graphics/'+ name +'.xlsx')
예제 #25
0
 def thread_set(self):
     self.backend_firebase = BK.BackendThreadFirebase()  # 建立執行緒
     self.backend_firebase.update_agv_signal.connect(
         self.handle_agv)  # 連線訊號
     self.backend_firebase.update_arm_signal.connect(
         self.handle_arm)  # 連線訊號
     self.backend_firebase.start()  # 開始執行緒
예제 #26
0
def search_command():
    '''
    Clears listbox and calls search from backend, textfield is populated from results.
    '''
    list1.delete(0, END)
    for row in bd.search(e1val.get(), e2val.get(), e3val.get(), e4val.get()):
        list1.insert(END, row)
예제 #27
0
    def show_frame_alt(self, cont):

        if cont.__name__ == "DashBoard":
            self.title(config.currentUser + "'s " + cont.__name__)
        elif cont.__name__ == "WeekData":
            self.title(config.currentUser + "'s " + cont.__name__)
            config.destroy_frame_widgits(self.frames[cont])
            if bool(config.weekData):
                self.frames[cont].buildCurrentPage()
            else:
                back.buildEmptyPage(self.frames[cont])

        self.toggleMenu(cont)
        frame = self.frames[cont]
        frame.configure(bg="light grey")
        frame.tkraise()
예제 #28
0
def email_command():
    app.listClientes.delete(0, END)
    rows = core.search(app.txtNome.get(), app.txtScore.get(),
                       app.txtEmail.get(), app.txtCPF.get())
    for r in rows:
        app.listClientes.insert(END, r)

    smtp_ssl_host = 'smtp.gmail.com'
    smtp_ssl_port = 465
    username = '******'
    password = '******'

    from_addr = '*****@*****.**'
    to_addrs = app.txtEmail.get()
    scoreemail = str(app.txtScore.get())
    nomecliente = str(app.txtNome.get())

    if int(scoreemail) < 300:
        message = MIMEText(
            '------------SPC Brasil--------------- \n'
            'Saudações:' + nomecliente + '\n'
            'Informamos que seu score apresenta queda recorrente, seu score atual é de: '
            + scoreemail + '\n'
            'confira o nosso site para obter mais informações sobre o que é o seu score: https://guilherme4garcia.github.io/PI_SPC/'
        )
        message['subject'] = app.txtNome.get()
        message['from'] = from_addr
        message['to'] = ', '.join(to_addrs)

    elif int(scoreemail) < 600:
        message = MIMEText(
            '------------SPC Brasil--------------- \n'
            'Saudações:' + nomecliente + '\n'
            'Informamos que seu score está mediano, sua situação atual é de: '
            + scoreemail + ' pontos\n'
            'confira o nosso site para obter mais informações sobre o que é o seu score: https://guilherme4garcia.github.io/PI_SPC/'
        )
        message['subject'] = app.txtNome.get()
        message['from'] = from_addr
        message['to'] = ', '.join(to_addrs)

    else:
        message = MIMEText(
            '------------SPC Brasil--------------- \n'
            'Saudações:' + nomecliente + '\n'
            'Informamos que seu score está bom, sua situação atual é de: ' +
            scoreemail + ' pontos\n'
            'confira o nosso site para obter mais informações sobre o que é o seu score: https://guilherme4garcia.github.io/PI_SPC/'
        )
        message['subject'] = app.txtNome.get()
        message['from'] = from_addr
        message['to'] = ', '.join(to_addrs)

    server = smtplib.SMTP_SSL(smtp_ssl_host, smtp_ssl_port)
    server.login(username, password)
    server.sendmail(from_addr, to_addrs, message.as_string())
    server.quit()
    Mbox('email enviado', 'Email enviado com sucesso', 0)
    return print(rows)
예제 #29
0
def view_command():
    '''
    Clears listbox and populates it with all the rows from the table using view
    method defined in backend.
    '''
    list1.delete(0, END)
    for row in bd.view():
        list1.insert(END, row)
def view_command():
    list1.delete(0, END)
    for row in Backend.view():
        list1.insert(END, row)
    e1.delete(0, END)
    e2.delete(0, END)
    e3.delete(0, END)
    e4.delete(0, END)
#!/usr/bin/etc python

import Backend
import sys
import socket
import time
Backend.init_resource()
#dummy intro to get messy stuff out of the way
#todo: fix error messages
ans = Backend.get_response("initializing")
#oov_state =1
#name_entity_state =1
#anaphra_state =1
#short_answer_state=1
#previous_history ={}
#word2vec_ranking_state =1
#tfidf_state =1
#policy_mode =1
#user_list =[]
#theme = {}
while True:
        serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        #Log('serversocket')
        serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        serversocket.bind(('localhost', 13113))
        serversocket.listen(5)
        connection, address = serversocket.accept()
        #Log('connection established')
        print connection
        user_input = connection.recv(1024)
	print user_input
예제 #32
0
#!/usr/bin/etc python

import Backend

print("Initializing...please be patient...\n")

Backend.init_resource()

#dummy intro to get messy stuff out of the way
#todo: fix error messages
ans = Backend.get_response("initializing")

#Intro text
print("\n\nWelcome! Type below to have a conversation with TickTock. Make sure to put your input inside quotation marks. Type exit() to stop.\n")
print("TickTock: \"Hi! I'm TickTock. Ask me some questions.\"")

while(1):
    question = input('You: ')
    ans = Backend.get_response(question)
    print("TickTock: \"" + ans + "\"")
    
예제 #33
0
    def __init__(self,parent, settings, loadfile=None):
        self.parent = parent
        self.currentConcept='dummy-concept'
        self.recentPatients = {}
        self.displayMode=StringVar()
        self.displayMode.set('sort')
        self.nProcs = 2
        self.settings = readSettings(settings)
        self.logfile = file(self.settings.find('logfile').attrib['path'], 'a')
        self.dictionaries = []
        for dat in self.settings.findall('dataTypes/datum'):
            if not 'dictionary' in dat.attrib:
                continue
            else:
                dct = dat.attrib['dictionary']

            self.dictionaries.append((dat.attrib['type'], pickle.load(file(dct))))

        m1 = PanedWindow()
        m1.pack(fill=BOTH, expand=1)
        
        self.leftDisplay = PanedWindow(m1, orient=VERTICAL)
        m1.add(self.leftDisplay)
        
        m2 = PanedWindow(m1, orient=VERTICAL)
        m1.add(m2)

        #left pane -- anchor showing
        self.conceptListbox = ConceptListbox(self.leftDisplay, self)

        self.buttons = []
        b = Button(self.leftDisplay, text='new variable', command=self.addConceptWindow)
        self.leftDisplay.add(b)
        b.pack(side=TOP)

        self.displayString = Label(self.leftDisplay, text='')
        self.displayString.pack(side=TOP)


        b = Radiobutton(self.leftDisplay, text="view recently anchored", variable=self.displayMode, value="recent", command=self.refresh)
        self.leftDisplay.add(b)
        b.pack(side=BOTTOM)
        
        b = Radiobutton(self.leftDisplay, text="view selected anchored", variable=self.displayMode, value="select", command=self.refresh)
        self.leftDisplay.add(b)
        b.pack(side=BOTTOM)

        b = Radiobutton(self.leftDisplay, text="view all anchored", variable=self.displayMode, value="filter", command=self.refresh)

        self.leftDisplay.add(b)
        b.pack(side=BOTTOM)
        
        b = Radiobutton(self.leftDisplay, text="view not anchored", variable=self.displayMode, value="sort", command=self.refresh)
        self.leftDisplay.add(b)
        b.pack(side=BOTTOM)

        #b = Radiobutton(self.leftDisplay, text="do labeling", variable=self.displayMode, value="label", command=self.refresh)
        #self.leftDisplay.add(b)
        #b.pack(side=BOTTOM)

        self.anchorDisplay = AnchorDisplay(m2, self)
        self.patientDetailDisplay = PatientDetailDisplay(m2, self)
        self.patientListDisplay = PatientListDisplay(m2, self)
        self.backend = Backend(self, loadfile)
        self.refresh()
예제 #34
0
class Display:
    def __init__(self,parent, settings, loadfile=None):
        self.parent = parent
        self.currentConcept='dummy-concept'
        self.recentPatients = {}
        self.displayMode=StringVar()
        self.displayMode.set('sort')
        self.nProcs = 2
        self.settings = readSettings(settings)
        self.logfile = file(self.settings.find('logfile').attrib['path'], 'a')
        self.dictionaries = []
        for dat in self.settings.findall('dataTypes/datum'):
            if not 'dictionary' in dat.attrib:
                continue
            else:
                dct = dat.attrib['dictionary']

            self.dictionaries.append((dat.attrib['type'], pickle.load(file(dct))))

        m1 = PanedWindow()
        m1.pack(fill=BOTH, expand=1)
        
        self.leftDisplay = PanedWindow(m1, orient=VERTICAL)
        m1.add(self.leftDisplay)
        
        m2 = PanedWindow(m1, orient=VERTICAL)
        m1.add(m2)

        #left pane -- anchor showing
        self.conceptListbox = ConceptListbox(self.leftDisplay, self)

        self.buttons = []
        b = Button(self.leftDisplay, text='new variable', command=self.addConceptWindow)
        self.leftDisplay.add(b)
        b.pack(side=TOP)

        self.displayString = Label(self.leftDisplay, text='')
        self.displayString.pack(side=TOP)


        b = Radiobutton(self.leftDisplay, text="view recently anchored", variable=self.displayMode, value="recent", command=self.refresh)
        self.leftDisplay.add(b)
        b.pack(side=BOTTOM)
        
        b = Radiobutton(self.leftDisplay, text="view selected anchored", variable=self.displayMode, value="select", command=self.refresh)
        self.leftDisplay.add(b)
        b.pack(side=BOTTOM)

        b = Radiobutton(self.leftDisplay, text="view all anchored", variable=self.displayMode, value="filter", command=self.refresh)

        self.leftDisplay.add(b)
        b.pack(side=BOTTOM)
        
        b = Radiobutton(self.leftDisplay, text="view not anchored", variable=self.displayMode, value="sort", command=self.refresh)
        self.leftDisplay.add(b)
        b.pack(side=BOTTOM)

        #b = Radiobutton(self.leftDisplay, text="do labeling", variable=self.displayMode, value="label", command=self.refresh)
        #self.leftDisplay.add(b)
        #b.pack(side=BOTTOM)

        self.anchorDisplay = AnchorDisplay(m2, self)
        self.patientDetailDisplay = PatientDetailDisplay(m2, self)
        self.patientListDisplay = PatientListDisplay(m2, self)
        self.backend = Backend(self, loadfile)
        self.refresh()



    def displayConcept(self, conceptID=None):
        if conceptID == None:
            conceptID = self.currentConcept
        else:
            self.currentConcept = conceptID

        self.backend.initConcept(conceptID)
        self.anchorDisplay.showAnchors(conceptID)
        self.patientListDisplay.displayPatients()
        self.patientDetailDisplay.clear()
        self.showStats()


    def showStats(self):
        displayString = ""
        displayString += "current var is "+ self.currentConcept+'\n'
        displayString += 'anchored patients: ' +str(len(union(self.backend.concepts[self.currentConcept].anchoredPatients.values()))) +'\n'
        displayString += 'hand labeled patients: ' + str(len(self.backend.concepts[self.currentConcept].human_labels.keys())) +'\n'
        #displayString += 'evaluator patients: ' + str(len(union(self.backend.concepts[self.currentConcept].evaluatorPatients.values()))) +'\n'
        #displayString += 'precision@'+str(self.backend.concepts[self.currentConcept].recall)+': ' + str(self.backend.concepts[self.currentConcept].get_precision()) + '\n'
        
        self.displayString.config(text=displayString)

        
    def debug(self):
        #IPython.getipython.get_ipython().launch_new_instance({'self':self})
        print "done with debugging session"

    def calculateStats(self):
        nAnchored = 0
        for pat in self.patients.values():
            if self.currentConcept in pat['anchors']:
                self.anchored_patients[self.currentConcept].add(pat['index'])
                nAnchored += 1
            else:
                self.anchored_patients[self.currentConcept].discard(pat['index'])

        display_str = ""

        if self.currentConcept in self.weights and self.weights[self.currentConcept]:
            status = 'up to date.'
        else:
            status = 'out of date!'

        display_str += "model is "+status+'\n'
        #display_str += "validate set size "+str(self.validate_size)+'\n'
        display_str += "anchored patients="+str(nAnchored)+'\n'
        display_str += "human labels (pos/neg)= ("+str(len([i for i in self.human_labels[self.currentConcept].values() if i == 1])) + '/'
        display_str += str(len([i for i in self.human_labels[self.currentConcept].values() if i == 0])) + ')\n'
        display_str += "display size is="+str(self.nDisplay)+'\n'
        display_str += "train size is="+str(self.nTrain)+'\n'
        self.stat_str.set(display_str)

    def addConceptWindow(self):
        display = Tk()
        display.title('Add a new variable')
        new_window = PanedWindow(display, orient=VERTICAL)
        new_window.pack(fill=BOTH, expand=1)
        label = Label(new_window, text = "Enter a new variable")
        new_window.add(label)
        l = Entry(new_window)
        l.bind("<Return>", self.addConcept)
        new_window.add(l)
        
    def addConcept(self, event):
        new_concept = event.widget.get().lower()
        self.backend.newConcept(new_concept)
        self.displayConcept(new_concept)
        event.widget.master.master.destroy()

    
            
    def suggestConcept(self):
        pass


    #select a patient and display
    def patientSelect(self, event):
        for p in event.widget.curselection():
            self.displayPatient(self.toplistIDs[int(p)])

    
    def onStructuredAnchorSuggest(self, event):
        for p in event.widget.selection():
            item = event.widget.item(p)
            self.enterAnchor.delete(0,END)
            self.enterAnchor.insert(0, item['values'][0])
        event.widget.master.master.destroy()


    def refresh(self):
        self.displayConcept()


    def resetModel(self, conceptID):
        self.weights[conceptID] = None
        self.orderedPatients[conceptID] = None