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()
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()
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()
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()
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
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)
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)