Example #1
0
 def OnSave(self,event):
     # Save away the edited text
     # Open the file, do an RU sure check for an overwrite!
     dlg = wx.FileDialog(self, "Save JSON file", "", "",
                                "JSON files (*.json)|*.json", wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT)
     if dlg.ShowModal() == wx.ID_OK:
         # Open the file for write, write, close
         filename=dlg.GetFilename()
         dirname=dlg.GetDirectory()
         f= dirname + '/' + filename
         BN.save(f)
     # Get rid of the dialog to keep things tidy
     dlg.Destroy()
Example #2
0
 def OnSave(self, event):
     # Save away the edited text
     # Open the file, do an RU sure check for an overwrite!
     dlg = wx.FileDialog(self, "Save JSON file", "", "",
                         "JSON files (*.json)|*.json",
                         wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT)
     if dlg.ShowModal() == wx.ID_OK:
         # Open the file for write, write, close
         filename = dlg.GetFilename()
         dirname = dlg.GetDirectory()
         f = dirname + '/' + filename
         BN.save(f)
     # Get rid of the dialog to keep things tidy
     dlg.Destroy()
Example #3
0
 def OnOpen(self,e):
     '''Load in existing JSON file - This works currently'''
     del BN.nodesSave[:]
     del BN.parentsSave[:]
     del BN.statesSave[:]
     del BN.cptsSave[:]
     del BN.evidenceList[:]
     del BN.cpts[:]
     dlg = wx.FileDialog(self, "Choose a file", style=wx.FD_OPEN)
     if dlg.ShowModal() == wx.ID_OK:
         filename = dlg.GetFilename()
         dirname = dlg.GetDirectory()
         f= dirname + '/' + filename
         BN.load(f) #Load and parse network from properly-formatted JSON file
     dlg.Destroy()
     #self.Bind(wx.EVT_PAINT, self.centerpanel.OnPaint) #draw circles 
     #DrawPanel.Refresh(self.centerpanel)
     self.centerpanel.OnPaintNow()
Example #4
0
 def OnOpen(self, e):
     '''Load in existing JSON file - This works currently'''
     del BN.nodesSave[:]
     del BN.parentsSave[:]
     del BN.statesSave[:]
     del BN.cptsSave[:]
     del BN.evidenceList[:]
     del BN.cpts[:]
     dlg = wx.FileDialog(self, "Choose a file", style=wx.FD_OPEN)
     if dlg.ShowModal() == wx.ID_OK:
         filename = dlg.GetFilename()
         dirname = dlg.GetDirectory()
         f = dirname + '/' + filename
         BN.load(
             f)  #Load and parse network from properly-formatted JSON file
     dlg.Destroy()
     #self.Bind(wx.EVT_PAINT, self.centerpanel.OnPaint) #draw circles
     #DrawPanel.Refresh(self.centerpanel)
     self.centerpanel.OnPaintNow()
Example #5
0
def getInputs(parent=None):
    '''Get inputs needed to create node and add to inputs to global lists in BN'''
    #Input name
    parents = []
    states = []
    didicancel = 0
    dlg = wx.TextEntryDialog(parent, 'Please enter name of node: ')
    if dlg.ShowModal() == wx.ID_OK:
        myaddednode = dlg.GetValue()
        name = myaddednode
    else:
        didicancel = 1
    #print(BN.nodesSave)
    #Input parents - CHANGE -> ask for number of parents and have new window pop up for each
    dlg.Destroy()
    dlg2 = wx.TextEntryDialog(parent, 'Please enter number of parents: ')

    if dlg2.ShowModal() == wx.ID_OK:
        parents_Num = int(dlg2.GetValue())
    else:
        parents_Num = -1
        didicancel = 1

    #print(parents_Num)
    dlg2.Destroy()
    for i in range(parents_Num):
        #print(i)
        dlg3 = wx.TextEntryDialog(parent,
                                  "Please enter name of parent %d: " % (i + 1))
        if dlg3.ShowModal() == wx.ID_OK:
            parents.append(dlg3.GetValue())
        else:
            didicancel = 1

        dlg3.Destroy()
    parents.reverse()
    parents = ''.join(parents)
    if parents_Num > 0:
        together = parents + name
    if parents_Num == 0:
        together = name

    dlg4 = wx.TextEntryDialog(parent, 'Please enter number of states: ')

    if dlg4.ShowModal() == wx.ID_OK:
        states_Num = int(dlg4.GetValue())
    else:
        states_Num = 0
        didicancel = 1
    #print(states_Num)
    dlg4.Destroy()
    for z in range(states_Num):
        #print(i)
        dlg5 = wx.TextEntryDialog(parent, "Please enter state %d: " % (z + 1))
        if dlg5.ShowModal() == wx.ID_OK:
            states.append(dlg5.GetValue())
        else:
            didicancel = 1

        dlg5.Destroy()

    dlg6 = wx.TextEntryDialog(parent,
                              'Please enter probability distribution: ')
    if dlg6.ShowModal() == wx.ID_OK:
        cpt_input = eval(dlg6.GetValue())
    else:
        didicancel = 1
    #print(cpt_input)
    dlg6.Destroy()

    if didicancel == 0:

        cpt = BN.TablePotential(together, cpt_input)
        BN.cpts.append(cpt)

        BN.parentsSave.append(parents)
        BN.statesSave.append(states)
        BN.nodesSave.append(myaddednode)
        BN.cptsSave.append(cpt_input)

    #print(BN.parentsSave)
    #print(BN.statesSave)
    return didicancel
Example #6
0
 def DoAllInference(self, event):
     self.st1.SetLabel('')
     potentials = BN.cpts + BN.setEvidenceList(BN.evidenceList)
     printList = BN.doAllInference(potentials)
     #Putting results on panel
     self.st1.SetLabel(printList)
Example #7
0
 def DoAllInference(self,event):
     self.st1.SetLabel('')
     potentials = BN.cpts + BN.setEvidenceList(BN.evidenceList)
     printList = BN.doAllInference(potentials) 
     #Putting results on panel
     self.st1.SetLabel(printList)