def clear_caches(): """Wipe the cache times in configs. This will force package resources to be extracted again. """ import gameMan import packageLoader restart_ok = messagebox.askokcancel( title=_('Allow Restart?'), message=_('Restart the BEE2 to re-extract packages?'), ) if not restart_ok: return for game in gameMan.all_games: game.mod_time = 0 game.save() GEN_OPTS['General']['cache_time'] = '0' for pack_id in packageLoader.packages: packageLoader.PACK_CONFIG[pack_id]['ModTime'] = '0' save() # Save any option changes.. gameMan.CONFIG.save_check() GEN_OPTS.save_check() packageLoader.PACK_CONFIG.save_check() utils.restart_app()
def clear_caches(): """Wipe the cache times in configs. This will force package resources to be extracted again. """ import gameMan import packageLoader restart_ok = messagebox.askokcancel( title='Allow Restart?', message='Restart the BEE2 to re-extract packages?', ) if not restart_ok: return for game in gameMan.all_games: game.mod_time = 0 game.save() GEN_OPTS['General']['cache_time'] = '0' for pack_id in packageLoader.packages: packageLoader.PACK_CONFIG[pack_id]['ModTime'] = '0' save() # Save any option changes.. gameMan.CONFIG.save_check() GEN_OPTS.save_check() packageLoader.PACK_CONFIG.save_check() utils.restart_app()
def apply_changes(): values_changed = any( item.package.enabled != item.state for item in pack_items.values() ) if not values_changed: # We don't need to do anything! window.withdraw() window.grab_release() return if messagebox.askokcancel( title=_('BEE2 - Restart Required!'), message=_('Changing enabled packages requires a restart.\nContinue?'), master=window, ): window.withdraw() window.grab_release() for item in UI['details'].items: pack = item.package if pack.id != packageLoader.CLEAN_PACKAGE: pack.enabled = item.state PACK_CONFIG.save_check() utils.restart_app()
def start_app_update(self): fn = self.eskyObj.version_finder.version_graph.get_best_path(self.eskyObj.version, self.newest_version)[0] log.debug("Updating to v%s..." % self.newest_version) self.label1.setText(tr("Updating to v%s...") % self.newest_version) self.label2.setText(tr("File: <i>%s</i>") % fn) try: printed_size = 0 for d in self.eskyObj.fetch_version_iter(self.newest_version): QtGui.QApplication.processEvents() if d['status'] == 'downloading': if printed_size != d['size']: self.label1.setText(tr("Updating to v%s (%.2f MB)...") % (self.newest_version, d['size']/1024.0**2)) printed_size = d['size'] self.prg_bar.setValue(100.0*d['received']/d['size']) self.prg_bar.setValue(100) self.eskyObj.install_version(self.newest_version) self.eskyObj.cleanup() Main.WebParser.WebServices.inform_esky_update(fn, self.newest_version) win = SetAutoUpdate(self.newest_version) win.exec_() config.saveToIni() utils.restart_app() except esky.EskyVersionError: QtGui.QMessageBox.critical(self, tr("Error"), tr("The update task failed. Please go to <a href=\"%s\">our website</a> and download the update manually.") % config.website, QtGui.QMessageBox.Ok) self.close()
def start_app_update(self): fn = self.eskyObj.version_finder.version_graph.get_best_path( self.eskyObj.version, self.newest_version)[0] log.debug("Updating to v%s..." % self.newest_version) self.label1.setText(tr("Updating to v%s...") % self.newest_version) self.label2.setText(tr("File: <i>%s</i>") % fn) try: printed_size = 0 for d in self.eskyObj.fetch_version_iter(self.newest_version): QtGui.QApplication.processEvents() if d['status'] == 'downloading': if printed_size != d['size']: self.label1.setText( tr("Updating to v%s (%.2f MB)...") % (self.newest_version, d['size'] / 1024.0**2)) printed_size = d['size'] self.prg_bar.setValue(100.0 * d['received'] / d['size']) self.prg_bar.setValue(100) self.eskyObj.install_version(self.newest_version) self.eskyObj.cleanup() Main.WebParser.WebServices.inform_esky_update( fn, self.newest_version) win = SetAutoUpdate(self.newest_version) win.exec_() config.saveToIni() utils.restart_app() except esky.EskyVersionError: QtGui.QMessageBox.critical( self, tr("Error"), tr("The update task failed. Please go to <a href=\"%s\">our website</a> and download the update manually." ) % config.website, QtGui.QMessageBox.Ok) self.close()
def apply_changes(): values_changed = any(item.package.enabled != item.state for item in pack_items.values()) if not values_changed: # We don't need to do anything! window.withdraw() window.grab_release() return if messagebox.askokcancel( title=_('BEE2 - Restart Required!'), message=_( 'Changing enabled packages requires a restart.\nContinue?'), master=window, ): window.withdraw() window.grab_release() for item in UI['details'].items: pack = item.package if pack.id != packages.CLEAN_PACKAGE: pack.enabled = item.state PACK_CONFIG.save_check() utils.restart_app()
def __init__(self): # Setting geometrical things w = 500 h = 400 master.ws = master.winfo_screenwidth() # width of the screen master.hs = master.winfo_screenheight() # height of the screen StartWindow.frame = ttk.Frame(master, width=w, height=h) StartWindow.frame.place(x=0, y=0) # placing funny monkey img_name1 = 'imgs/ML/monkey1.png' img_path1 = os.path.join(application_path, img_name1) img1 = tk.PhotoImage(file=img_path1) panel = tk.Label(StartWindow.frame, image=img1) panel.place(relx=0.04, rely=0.15) # instead of closing apps, which leads to losing data, we just iconify/deiconify it def run_app(app): if not hasattr(app, 'root'): app(master) else: app.root.deiconify() ttk.Button(StartWindow.frame, text='Classification', width=12, command=lambda: run_app(ClassificationApp)).place(x=300, y=80) ttk.Button(StartWindow.frame, text='Regression', width=12, command=lambda: run_app(RegressionApp)).place(x=300, y=130) ttk.Button(StartWindow.frame, text='Clustering', width=12, command=lambda: run_app(ClustApp)).place(x=300, y=180) ttk.Button(StartWindow.frame, text='Decomposition', width=12, command=lambda: run_app(DcmpApp)).place(x=300, y=230) #setting main window's parameters x = (master.ws / 2) - (w / 2) y = (master.hs / 2) - (h / 2) - 30 master.geometry('%dx%d+%d+%d' % (w, h, x, y)) master.title('Monkey Data Analysis') master.lift() #master.grab_set() master.focus_force() master.resizable(False, False) #setting application icon StartWindow.img_ico = 'imgs\ML\logo1.png' StartWindow.img_ico_path = os.path.join(application_path, StartWindow.img_ico) StartWindow.ico_photo = tk.PhotoImage(file=StartWindow.img_ico_path) master.iconphoto(True, StartWindow.ico_photo) #Creating menus main_menu = tk.Menu(master) master.config(menu=main_menu) main_menu.add_command(label='Restart', command=lambda: restart_app()) settings_menu = tk.Menu(main_menu, tearoff=False) def set_theme(theme): master.set_theme(theme) style.configure('.', font=myfont) style.configure('TButton', padding=(5, 1), relief='raised') style.configure('TCheckbutton', padding=(1, 1)) master.update() open('settings\style.txt', 'w').write(theme) style_menu = tk.Menu(settings_menu, tearoff=False) style_menu.add_command(label='Alt', command=lambda: set_theme('alt')) style_menu.add_command(label='Aquativo', command=lambda: set_theme('aquativo')) style_menu.add_command(label='Black', command=lambda: set_theme('black')) style_menu.add_command(label='Blue', command=lambda: set_theme('blue')) #big style_menu.add_command(label='Clam', command=lambda: set_theme('clam')) style_menu.add_command(label='Clearlooks', command=lambda: set_theme('clearlooks')) style_menu.add_command(label='Default', command=lambda: set_theme('default')) style_menu.add_command(label='Kroc', command=lambda: set_theme('kroc')) #big style_menu.add_command(label='Plastik', command=lambda: set_theme('plastik')) style_menu.add_command(label='Radiance', command=lambda: set_theme('radiance')) #big scid_menu = tk.Menu(style_menu, tearoff=False) scid_menu.add_command(label='Mint', command=lambda: set_theme('scidmint')) scid_menu.add_command(label='Sand', command=lambda: set_theme('scidsand')) scid_menu.add_command(label='Green', command=lambda: set_theme('scidgreen')) scid_menu.add_command(label='Blue', command=lambda: set_theme('scidblue')) scid_menu.add_command(label='Purple', command=lambda: set_theme('scidpurple')) scid_menu.add_command(label='Grey', command=lambda: set_theme('scidgrey')) scid_menu.add_command(label='Pink', command=lambda: set_theme('scidpink')) style_menu.add_cascade(label="Scid", menu=scid_menu) style_menu.add_command(label='Smog', command=lambda: set_theme('smog')) # style_menu.add_command(label='Ubuntu', command=lambda: set_theme('ubuntu')) #big style_menu.add_command(label='Vista', command=lambda: set_theme('vista')) style_menu.add_command(label='winnative', command=lambda: set_theme('winnative')) style_menu.add_command(label='winxpblue', command=lambda: set_theme('winxpblue')) style_menu.add_command(label='xpnative', command=lambda: set_theme('xpnative')) settings_menu.add_cascade(label="Style", menu=style_menu) help_menu = tk.Menu(main_menu, tearoff=False) def open_site(site): webbrowser.open(site) def open_about_window(): about_message = 'Machine Learning tool 1.2' about_detail = "by Monkey22\na.k.a Osipov A." tk.messagebox.showinfo(title='About', message=about_message, detail=about_detail) docs_menu = tk.Menu(help_menu, tearoff=False) help_menu.add_cascade(label="Docs", menu=docs_menu) docs_menu.add_command( label='Pandas', command=lambda: open_site('https://pandas.pydata.org')) docs_menu.add_command(label='Numpy', command=lambda: open_site('https://numpy.org')) docs_menu.add_command( label='Scikit-learn', command=lambda: open_site('https://scikit-learn.org')) docs_menu.add_command(label='XGBoost', command=lambda: open_site( 'https://xgboost.readthedocs.io/en/latest/')) docs_menu.add_command( label='CatBoost', command=lambda: open_site( 'https://catboost.ai/docs/concepts/about.html')) docs_menu.add_command( label='LightGBM', command=lambda: open_site( 'https://lightgbm.readthedocs.io/en/latest/')) help_menu.add_command(label='About', command=open_about_window) main_menu.add_cascade(label="Settings", menu=settings_menu) main_menu.add_cascade(label="Help", menu=help_menu) master.mainloop()