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