def main(path, predict_column): df = pd.read_csv(path) columns = df.columns.values X = [ df[column].values for column in columns if column != predict_column and column != 'Name' ] y = df[predict_column].values swtch = Switcher() sk_X = [] for column in X: converted = np.array(swtch.convert_to(column)) sk_X.append(converted) sk_X = np.array(sk_X).T sk_y = np.array(swtch.convert_to(y)).T decisions = ID3() entropy = decisions.fit(X, y) print(f'Entropies:\t\t\t{entropy}') sk_decisions = DecisionTreeClassifier(random_state=1370) sk_decisions.fit(sk_X, sk_y) print(f'SkLearn Tree Decision accuracy:\t{sk_decisions.score(sk_X, sk_y)}') #print(sk_decisions.predict(['pycharm', 'Java', 'tea'])) return 0
def switcher(self): '''Return switcher object (singleton). This is implemented as a method, so that it can be created only when needed to avoid errors when displaying help.''' if not self._switcher: self._switcher = Switcher() return self._switcher
def run(share_code): scan_timeout = 10 # seconds scanner = Scanner().withDelegate(ScanDelegate()) switcher = None retry = True while (retry): try: print('Scanning...') devices = scanner.scan(scan_timeout) for device in devices: name = None for ad_type, description, value in device.getScanData(): if ad_type == 9: name = value if name is None or 'SWITCHER' not in name: continue print('Device {} ({}), RSSI={}dB'.format( device.addr, device.addrType, device.rssi)) print('Connectable: {}'.format(device.connectable)) if name == 'SWITCHER_M' and device.connectable: print('Connectable switcher is found.') switcher = device retry = False break print('Switcher is not found') except Exception as e: print('Error on scanning') print(e) Switcher(device.addr, device.addrType, share_code)
def main(path, predict_column): df = pd.read_csv(path) columns = df.columns.values X = [ df[column].values for column in columns if column != predict_column and column != 'Name' ] y = df[predict_column].values decisions = ID3() fitted = decisions.fit(X, y) print(f'Entropy of {predict_column}:\t\t\t{fitted[1]}\n') print(f'Information Gains of Xs\n') headers = ' '.join( map( str, list( filter(lambda x: x != predict_column and x != "Name", df.columns.values)))).replace(' ', '\t | ') print(f'{headers}') values = ' '.join(map(lambda x: "{0:.8f}".format(x), fitted[0])).replace(' ', '\t | ') print(values) print('\n\n') swtch = Switcher() sk_X = [] for column in X: converted = np.array(swtch.convert_to(column)) sk_X.append(converted) sk_X = np.array(sk_X).T sk_y = np.array(swtch.convert_to(y)).T x_train, x_test, y_train, y_test = train_test_split(sk_X, sk_y, test_size=0.3) sk_decisions = DecisionTreeClassifier(random_state=1370) sk_decisions.fit(x_train, y_train) print( f'SkLearn Tree Decision accuracy:\t{sk_decisions.score(x_train, y_train)}' ) print(f'SkLearn Tree Decision prediction: {sk_decisions.predict(x_test)}') return 0
def __init__(self, add_book, *args, **kwargs): """ initilizer for the main from for the AddressBook app. :param add_book: the address book class to manipulate :type add_book: A address_book_data.AddressBook instance """ kwargs.setdefault('title', "Micro Address Book") wx.Frame.__init__(self, *args, **kwargs) self.add_book = add_book self.current_index = 0 # creae a status bar for messages... self.CreateStatusBar() # create the switcher self.switcher = Switcher(self) # create the entryPanel self.entryPanel = AddBookForm(add_book.book[self.current_index], self) # A new record button: new_record_but = wx.Button(self, label="New Record") new_record_but.Bind(wx.EVT_BUTTON, self.onNewRecord) # put them in a Sizer to lay out S = wx.BoxSizer(wx.VERTICAL) S.Add(self.switcher, 0, wx.ALL|wx.ALIGN_CENTER, 4) S.Add(wx.StaticLine(self,style=wx.LI_HORIZONTAL), 0, wx.EXPAND) S.Add(self.entryPanel, 0, wx.ALL|wx.EXPAND, 4) S.Add((1,5)) S.Add(wx.StaticLine(self,style=wx.LI_HORIZONTAL), 0, wx.EXPAND) S.Add(new_record_but, 0, wx.ALL|wx.ALIGN_RIGHT, 4) self.SetSizerAndFit(S) self.switcher.Fit() # Build up the menu bar: menuBar = wx.MenuBar() fileMenu = wx.Menu() openMenuItem = fileMenu.Append(wx.ID_OPEN, "&Open", "Open a file" ) self.Bind(wx.EVT_MENU, self.onOpen, openMenuItem) closeMenuItem = fileMenu.Append(wx.ID_EXIT, "&Close", "Close a file" ) self.Bind(wx.EVT_MENU, self.onClose, closeMenuItem) saveMenuItem = fileMenu.Append(wx.ID_SAVE, "&Save", "Save the file" ) self.Bind(wx.EVT_MENU, self.onSave, saveMenuItem) exitMenuItem = fileMenu.Append(wx.ID_EXIT, "Exit", "Exit the application") self.Bind(wx.EVT_MENU, self.onExit, exitMenuItem) menuBar.Append(fileMenu, "&File") helpMenu = wx.Menu() helpMenuItem = helpMenu.Append(wx.ID_HELP, "Help", "Get help") menuBar.Append(helpMenu, "&Help") self.SetMenuBar(menuBar)
class Ui_MainWindow(object): switcher = Switcher() def __init__(self): self.switcher.retrieve_settings() def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(742, 371) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.logo = QtWidgets.QLabel(self.centralwidget) self.logo.setGeometry(QtCore.QRect(590, 0, 161, 51)) self.logo.setText("") self.logo.setPixmap(QtGui.QPixmap("sesil_logo.jpg")) self.logo.setScaledContents(True) self.logo.setObjectName("logo") self.label = QtWidgets.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(230, 20, 220, 31)) MainWindow.setWindowIcon(QtGui.QIcon('logo.png')) font = QtGui.QFont() font.setFamily("Verdana") font.setPointSize(16) font.setBold(True) font.setUnderline(True) font.setWeight(75) self.label.setFont(font) self.label.setObjectName("label") self.label_2 = QtWidgets.QLabel(self.centralwidget) self.label_2.setGeometry(QtCore.QRect(500, 340, 230, 20)) font = QtGui.QFont() font.setFamily("Verdana") font.setBold(False) font.setWeight(50) self.label_2.setFont(font) self.label_2.setObjectName("label_2") self.label_3 = QtWidgets.QLabel(self.centralwidget) self.label_3.setGeometry(QtCore.QRect(30, 340, 101, 20)) font = QtGui.QFont() font.setFamily("Verdana") self.label_3.setFont(font) self.label_3.setObjectName("label_3") self.groupBox = QtWidgets.QGroupBox(self.centralwidget) self.groupBox.setGeometry(QtCore.QRect(80, 110, 561, 191)) self.groupBox.setObjectName("groupBox") self.groupBox_2 = QtWidgets.QGroupBox(self.groupBox) self.groupBox_2.setGeometry(QtCore.QRect(40, 30, 230, 130)) self.groupBox_2.setObjectName("groupBox_2") self.start_btn = QtWidgets.QPushButton(self.groupBox_2) self.start_btn.setGeometry(QtCore.QRect(50, 30, 130, 30)) self.start_btn.setObjectName("start_btn") self.exit_btn = QtWidgets.QPushButton(self.groupBox_2) self.exit_btn.setGeometry(QtCore.QRect(50, 80, 130, 30)) self.exit_btn.setObjectName("exit_btn") self.groupBox_3 = QtWidgets.QGroupBox(self.groupBox) self.groupBox_3.setGeometry(QtCore.QRect(330, 30, 190, 130)) self.groupBox_3.setObjectName("groupBox_3") self.check_settings_btn = QtWidgets.QPushButton(self.groupBox_3) self.check_settings_btn.setGeometry(QtCore.QRect(40, 30, 110, 30)) self.check_settings_btn.setObjectName("check_settings_btn") self.reports_folder_btn = QtWidgets.QPushButton(self.groupBox_3) self.reports_folder_btn.setGeometry(QtCore.QRect(40, 80, 110, 30)) self.reports_folder_btn.setObjectName("reports_folder_btn") self.line = QtWidgets.QFrame(self.groupBox) self.line.setGeometry(QtCore.QRect(300, 30, 3, 140)) self.line.setStyleSheet("background-color: rgb(64, 81, 112);") self.line.setFrameShape(QtWidgets.QFrame.VLine) self.line.setFrameShadow(QtWidgets.QFrame.Sunken) self.line.setObjectName("line") MainWindow.setCentralWidget(self.centralwidget) # linking buttons to connnects self.start_btn.clicked.connect(self.start_application) self.exit_btn.clicked.connect(self.exit_application) self.check_settings_btn.clicked.connect(self.check_settings) self.reports_folder_btn.clicked.connect(self.open_reports_folder) # linking ends here self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Application Switcher SESIL")) self.label.setText(_translate("MainWindow", "Window Switcher")) self.label_2.setText(_translate("MainWindow", "All Rights Reserved To SESIL PVT. LTD.")) self.label_3.setText(_translate("MainWindow", "@mujeebishaque")) self.groupBox.setTitle(_translate("MainWindow", "Switcher")) self.groupBox_2.setTitle(_translate("MainWindow", "Functional")) self.start_btn.setText(_translate("MainWindow", "Start")) self.exit_btn.setText(_translate("MainWindow", "Exit")) self.groupBox_3.setTitle(_translate("MainWindow", "Misc.")) self.check_settings_btn.setText(_translate("MainWindow", "Check Settings")) self.reports_folder_btn.setText(_translate("MainWindow", "Reports Folder")) def start_application(self): self.switcher.starter() def open_reports_folder(self): self.switcher.check_reports() def exit_application(self): sys.exit() def check_settings(self): self.switcher.check_settings()
def __init__(self, r_one=1, r_two=1, r_three=1, r_four=1, r_five=1): #This is a part of code used to check for values entered to be #compatible with the program if not isinstance(r_one, int): raise TypeError('Rotor values should be entered as integers') if not isinstance(r_two, int): raise TypeError('Rotor values should be entered as integers') if not isinstance(r_three, int): raise TypeError('Rotor values should be entered as integers') if not isinstance(r_four, int): raise TypeError('Rotor values should be entered as integers') if not isinstance(r_five, int): raise TypeError('Rotor values should be entered as integers') #Dictionary of all the letters and coresponding to them self.letters = { 'a': 'a', 'b': 'b', 'c': 'c', 'd': 'd', 'e': 'e', 'f': 'f', 'g': 'g', 'h': 'h', 'i': 'i', 'j': 'j', 'k': 'k', 'l': 'l', 'm': 'm', 'n': 'n', 'o': 'o', 'p': 'p', 'q': 'q', 'r': 'r', 's': 's', 't': 't', 'u': 'u', 'v': 'v', 'w': 'w', 'x': 'x', 'y': 'y', 'z': 'z' } #All the rotors are created from the least to first, it is important self.rotor_three = Rotor_One(None, r_three) self.rotor_two = Rotor_Five(self.rotor_three, r_two) self.rotor_one = Rotor_Three(self.rotor_two, r_one) #Swithers are created here self.switcher_one = Switcher() self.switcher_two = Switcher() self.switcher_three = Switcher() self.switcher_four = Switcher() self.switcher_five = Switcher() self.switcher_six = Switcher() self.switcher_seven = Switcher() self.switcher_eight = Switcher() self.switcher_nine = Switcher() self.switcher_ten = Switcher() #Switchers are used self.use_switchers()