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()
Esempio n. 2
0
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()
Esempio n. 3
0
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()
Esempio n. 4
0
	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()
Esempio n. 5
0
    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()
Esempio n. 6
0
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()
Esempio n. 7
0
    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()