Best Python code snippet using playwright-python
casino-setup-gui.py
Source:casino-setup-gui.py  
1#!/usr/bin/python22# CASINO Setup GUI written by Synge Todo3import sys4import os5import shutil6import subprocess7import wx8import config9class Frame(wx.Frame):10    def __init__(self, prefix, scriptdir):11        self.prefix = prefix12        self.scriptdir = scriptdir13        self.process_download = None14        self.process_compile = None15        self.process_kill = False16        self.on_dialog = False17        wx.Frame.__init__(self, None, -1, "CASINO Setup", size = (420,500))18        self.panel = wx.Panel(self, -1)19        layout = wx.BoxSizer(wx.VERTICAL)20        self.radio_download_pw = wx.RadioButton(self.panel, -1, "Download source with username and password")21        self.radio_download_pw.Bind(wx.EVT_RADIOBUTTON, self.OnChooseRadioDownloadPw)22        self.radio_download_pw.SetValue(True)23        layout.Add(self.radio_download_pw, 0, wx.LEFT | wx.RIGHT | wx.TOP, 10)24        grid_1 = wx.FlexGridSizer(2, 3)25        self.text_username = wx.TextCtrl(self.panel, -1, size = (285, -1))26        self.text_username.Bind(wx.EVT_TEXT, self.OnTextUsername)27        self.text_password = wx.TextCtrl(self.panel, -1, style = wx.TE_PASSWORD)28        self.text_password.SetMaxLength(8)29        self.text_password.Bind(wx.EVT_TEXT, self.OnTextPassword)30        grid_1.Add(wx.StaticText(self.panel, -1, '     '), 0)31        grid_1.Add(wx.StaticText(self.panel, -1, "Username:"), 0, wx.RIGHT, 4)32        grid_1.Add(self.text_username, 1, wx.EXPAND, 4)33        grid_1.Add(wx.StaticText(self.panel, -1, '     '), 0)34        grid_1.Add(wx.StaticText(self.panel, -1, "Password:"), 0, wx.RIGHT | wx.TOP, 4)35        grid_1.Add(self.text_password, 1, wx.EXPAND | wx.TOP, 4)36        layout.Add(grid_1, 0, wx.LEFT | wx.RIGHT | wx.TOP, 10)37        self.radio_download_url = wx.RadioButton(self.panel, -1, "Download source from temporary URL")38        self.radio_download_url.Bind(wx.EVT_RADIOBUTTON, self.OnChooseRadioDownloadUrl)39        layout.Add(self.radio_download_url, 0, wx.LEFT | wx.RIGHT | wx.TOP, 10)40        grid_2 = wx.FlexGridSizer(2, 3)41        self.text_url = wx.TextCtrl(self.panel, -1, size = (285, -1))42        self.text_url.Bind(wx.EVT_TEXT, self.OnTextUrl)43        grid_2.Add(wx.StaticText(self.panel, -1, '     '), 0)44        grid_2.Add(wx.StaticText(self.panel, -1, "URL:"), 0, wx.RIGHT, 4)45        grid_2.Add(self.text_url, 1, wx.EXPAND, 4)46        layout.Add(grid_2, 0, wx.LEFT | wx.RIGHT | wx.TOP, 10)47        self.radio_local = wx.RadioButton(self.panel, -1, "Use a source tarball on local storage")48        self.radio_local.Bind(wx.EVT_RADIOBUTTON, self.OnChooseRadioLocal)49        layout.Add(self.radio_local, 0, wx.LEFT | wx.RIGHT | wx.TOP, 10)50        grid_3 = wx.FlexGridSizer(2, 3)51        self.text_file = wx.TextCtrl(self.panel, -1, size = (325, -1), style = wx.TE_READONLY)52        self.button_choose = wx.Button(self.panel, -1, "Choose")53        self.button_choose.Bind(wx.EVT_BUTTON, self.OnChoose)54        grid_3.Add(wx.StaticText(self.panel, -1, '     '), 0)55        grid_3.Add(wx.StaticText(self.panel, -1, "File:"), 0, wx.RIGHT | wx.TOP, 4)56        grid_3.Add(self.text_file, 1, wx.EXPAND | wx.TOP, 4)57        grid_3.Add(wx.StaticText(self.panel, -1, ''), 0)58        grid_3.Add(wx.StaticText(self.panel, -1, ''), 0)59        grid_3.Add(self.button_choose, 0, wx.TOP, 4)60        layout.Add(grid_3, 0, wx.LEFT | wx.RIGHT | wx.TOP, 10)61        box_1 = wx.BoxSizer(wx.HORIZONTAL)62        self.button_help = wx.Button(self.panel, -1, "Help", size=(70,30))63        self.button_help.Bind(wx.EVT_BUTTON, self.OnHelp)64        self.button_cancel = wx.Button(self.panel, -1, "Cancel", size=(70,30))65        self.button_cancel.Bind(wx.EVT_BUTTON, self.OnCancel)66        self.button_install = wx.Button(self.panel, -1, "Install", size=(70,30))67        self.button_install.Bind(wx.EVT_BUTTON, self.OnInstall)68        box_1.Add(self.button_help, 0, wx.LEFT | wx.BOTTOM, 5)69        box_1.Add(self.button_cancel, 0, wx.LEFT | wx.BOTTOM, 5)70        box_1.Add(self.button_install, 0, wx.LEFT | wx.BOTTOM, 5)71        layout.Add(box_1, 0, wx.ALIGN_BOTTOM | wx.ALIGN_RIGHT | wx.RIGHT | wx.TOP, 10)72        self.text_log = wx.TextCtrl(self.panel, -1, style=wx.TE_MULTILINE | wx.TE_READONLY, size=(50,10))73        layout.Add(self.text_log, 1, wx.LEFT | wx.RIGHT | wx.TOP | wx.BOTTOM | wx.EXPAND, 10)74                                    75        self.panel.SetSizer(layout)76        77        self.Bind(wx.EVT_CLOSE, self.OnClose)78        self.Bind (wx.EVT_IDLE, self.OnIdle)79        self.UpdateState()80    def OnCancel(self, event):81        if (self.process_download):82            self.on_dialog = True83            dialog = wx.MessageDialog(None, 'Downloading is now proceeding.  Stop download?', 'CASINO Setup', wx.YES_NO | wx.NO_DEFAULT | wx.ICON_EXCLAMATION)84            if dialog.ShowModal() == wx.ID_YES:85                self.process_kill = True86            dialog.Destroy()87            self.on_dialog = False88        elif (self.process_compile):89            self.on_dialog = True90            dialog = wx.MessageDialog(None, 'Compilation is now proceeding.  Stop compilation?', 'CASINO Setup', wx.YES_NO | wx.NO_DEFAULT | wx.ICON_EXCLAMATION)91            if dialog.ShowModal() == wx.ID_YES:92                self.process_kill = True93            dialog.Destroy()94            self.on_dialog = False95        else:96            self.Destroy()97        self.UpdateState()98    def OnChoose(self, event):99        self.OpenFileDialog()100        self.UpdateState()101    def OnChooseRadioDownloadPw(self, event):102        self.UpdateState()103    def OnChooseRadioDownloadUrl(self, event):104        self.UpdateState()105    def OnChooseRadioLocal(self, event):106        if (not self.text_file.GetValue()):107            self.OpenFileDialog()108        self.UpdateState()109    def OnClose(self, event):110        if (self.process_download or self.process_compile):111            self.OnCancel(event)112        if (not (self.process_download or self.process_compile)):113            self.Destroy()114        self.UpdateState()115    def OnHelp(self, event):116        wx.BeginBusyCursor() 117        import webbrowser118        webbrowser.open('file://' + scriptdir + '/help.html') 119        wx.EndBusyCursor() 120        121    def OnIdle(self, event):122        if (self.on_dialog): return123        if (self.process_download):124            ret = self.process_download.poll()125            if (ret == None):126                if (self.process_kill):127                    self.process_kill = False128                    self.process_download.kill()129                    self.process_download = None130                    self.text_log.AppendText('Killed.')131                    self.UpdateState()132                else:133                    line = self.process_download.stdout.readline()134                    self.text_log.AppendText(line)135            else:136                self.process_download = None137                if (ret != 0):138                    dialog = wx.MessageDialog(None, 'Invalid username and/or password', 'Error', wx.OK | wx.ICON_ERROR)139                    dialog.ShowModal()140                    dialog.Destroy()141                else:142                    self.StartCompile(os.path.join(self.prefix, 'source', config.file))143                self.UpdateState()144        elif (self.process_compile):145            ret = self.process_compile.poll()146            if (ret == None):147                if (self.process_kill):148                    self.process_kill = False149                    self.process_compile.kill()150                    self.process_compile = None151                    self.text_log.AppendText('Killed.')152                    self.UpdateState()153                else:154                    line = self.process_compile.stdout.readline()155                    self.text_log.AppendText(line)156            else:157                self.process_compile = None158                if (ret != 0):159                    dialog = wx.MessageDialog(None, 'Error occured during compilation', 'Error', wx.OK | wx.ICON_ERROR)160                    dialog.ShowModal()161                    dialog.Destroy()162                else:163                    dialog = wx.MessageBox('Installation completed', 'CASINO Setup')164                    self.Destroy()165                self.UpdateState()166    def OnInstall(self, event):167        if (self.radio_download_pw.GetValue()):168            target = os.path.join(self.prefix, 'source')169            tarball = os.path.join(target, config.file)170            username = self.text_username.GetValue()171            password = self.text_password.GetValue()172            if (os.path.exists(tarball)):173                dialog = wx.MessageDialog(None, tarball + ' already exists.  Remove it and continue download?', 'CASINO Setup', wx.OK | wx.CANCEL | wx.ICON_QUESTION)174                if dialog.ShowModal() == wx.ID_OK:175                    dialog.Destroy()176                    os.remove(tarball)177                else:178                    dialog.Destroy()179                    self.text_file.SetValue(tarball)180                    self.radio_local.SetValue(True)181                    self.UpdateState()182                    return183            self.StartDownloadPw(username, password, target)184        elif (self.radio_download_url.GetValue()):185            target = os.path.join(self.prefix, 'source')186            tarball = os.path.join(target, config.file)187            url = self.text_url.GetValue()188            if (os.path.exists(tarball)):189                dialog = wx.MessageDialog(None, tarball + ' already exists.  Remove it and continue download?', 'CASINO Setup', wx.OK | wx.CANCEL | wx.ICON_QUESTION)190                if dialog.ShowModal() == wx.ID_OK:191                    dialog.Destroy()192                    os.remove(tarball)193                else:194                    dialog.Destroy()195                    self.text_file.SetValue(tarball)196                    self.radio_local.SetValue(True)197                    self.UpdateState()198                    return199            self.StartDownloadUrl(url, target)200        else:201            file = self.text_file.GetValue()202            if (file):203                self.StartCompile(file)204            else:205                dialog = wx.MessageDialog(None, 'Please specify source archive', 'Error',206                                          wx.OK | wx.ICON_ERROR)207                dialog.ShowModal()208                dialog.Destroy()209        self.UpdateState()210    def OnTextUsername(self, event):211        self.UpdateState()212    def OnTextPassword(self, event):213        self.UpdateState()214    def OnTextUrl(self, event):215        self.UpdateState()216    def OpenFileDialog(self):217        wildCard = "tar.gz file (*.tar.gz)|*.tar.gz|All files (*.*)|*.*"218        if (self.text_file.GetValue()):219            path = os.path.dirname(self.text_file.GetValue())220        else:221            path = os.environ['HOME']222        dialog = wx.FileDialog(self, "Choose a source archive", path, '', wildCard, wx.OPEN)223        if dialog.ShowModal() == wx.ID_OK:224            self.text_file.SetValue(dialog.GetPath())225            self.radio_local.SetValue(True)226        dialog.Destroy()227    def StartCompile(self, file):228        casinodir = os.path.join(self.prefix, 'share', 'casino')229        if (os.path.exists(casinodir)):230            dialog = wx.MessageDialog(None, casinodir + ' already exists.  Clean up and install CASINO anyway?', 'CASINO Setup', wx.OK | wx.CANCEL | wx.ICON_QUESTION)231            if dialog.ShowModal() == wx.ID_OK:232                shutil.rmtree(casinodir)233                dialog.Destroy()234            else:235                dialog.Destroy()236                return            237        cmd = ['/bin/sh', os.path.join(self.scriptdir, 'compile.sh'), file, self.prefix]238        self.process_compile = subprocess.Popen(cmd, stdout=subprocess.PIPE,239                                                stderr=subprocess.STDOUT,240                                                stdin=subprocess.PIPE)241        self.text_log.AppendText('Start compilation of CASINO\n')242    def StartDownloadPw(self, username, password, target):243        cmd = ['python2', os.path.join(self.scriptdir, 'download_pw.py'), username, password, target]244        self.process_download = subprocess.Popen(cmd, stdout=subprocess.PIPE,245                                                    stderr=subprocess.STDOUT,246                                                    stdin=subprocess.PIPE)247        self.text_log.AppendText('Start download of CASINO\n')248        249    def StartDownloadUrl(self, url, target):250        cmd = ['python2', os.path.join(self.scriptdir, 'download_url.py'), url, target]251        self.process_download = subprocess.Popen(cmd, stdout=subprocess.PIPE,252                                                 stderr=subprocess.STDOUT,253                                                 stdin=subprocess.PIPE)254        self.text_log.AppendText('Start download of CASINO\n')255        256    def UpdateState(self):257        if (self.process_download or self.process_compile):258            self.radio_download_pw.Disable()259            self.radio_download_url.Disable()260            self.radio_local.Disable()261            self.text_username.Disable()262            self.text_password.Disable()263            self.text_url.Disable()264            self.text_file.Disable()265            self.button_choose.Disable()266            self.button_help.Disable()267            self.button_install.Disable()268        else:269            self.radio_download_pw.Enable()270            self.radio_download_url.Enable()271            self.radio_local.Enable()272            self.button_choose.Enable()273            self.button_help.Enable()274            if (self.radio_download_pw.GetValue()):275                self.text_username.Enable()276                self.text_password.Enable()277                self.text_url.Disable()278                self.text_file.Disable()279                if (self.text_username.GetValue() and self.text_password.GetValue()):280                    self.button_install.Enable()281                else:282                    self.button_install.Disable()283            elif (self.radio_download_url.GetValue()):284                self.text_username.Disable()285                self.text_password.Disable()286                self.text_url.Enable()287                self.text_file.Disable()288                if (self.text_url.GetValue()):289                    self.button_install.Enable()290                else:291                    self.button_install.Disable()292            else:293                self.text_username.Disable()294                self.text_password.Disable()295                self.text_url.Disable()296                self.text_file.Enable()297                if (self.text_file.GetValue()):298                    self.button_install.Enable()299                else:300                    self.button_install.Disable()301if __name__ == '__main__':302    if (len(sys.argv) < 2):303        print "Usage:", sys.argv[0], "prefix"304        sys.exit(127)305    scriptdir = os.path.abspath(os.path.dirname(sys.argv[0]))306    prefix = sys.argv[1]307    app = wx.App()308    frame = Frame(prefix, scriptdir)309    frame.Show()310    app.MainLoop()...gamess-setup-gui.py
Source:gamess-setup-gui.py  
1#!/usr/bin/python22# GAMESS Setup GUI written by Synge Todo3import sys4import os5import shutil6import subprocess7import wx8import config9class Frame(wx.Frame):10    def __init__(self, prefix, scriptdir):11        self.prefix = prefix12        self.scriptdir = scriptdir13        self.process_download = None14        self.process_compile = None15        self.process_kill = False16        self.on_dialog = False17        wx.Frame.__init__(self, None, -1, "GAMESS Setup", size = (420,500))18        self.panel = wx.Panel(self, -1)19        layout = wx.BoxSizer(wx.VERTICAL)20        self.radio_download = wx.RadioButton(self.panel, -1, "Download source tarball from official website")21        self.radio_download.Bind(wx.EVT_RADIOBUTTON, self.OnChooseRadioDownload)22        self.radio_download.SetValue(True)23        layout.Add(self.radio_download, 0, wx.LEFT | wx.RIGHT | wx.TOP, 10)24        grid_1 = wx.FlexGridSizer(2, 3)25        self.text_username = wx.TextCtrl(self.panel, -1, value = 'source', size = (285, -1))26        self.text_username.Disable()27        self.text_password = wx.TextCtrl(self.panel, -1) # style = wx.TE_PASSWORD28        self.text_password.SetMaxLength(8)29        self.text_password.Bind(wx.EVT_TEXT, self.OnTextPassword)30        grid_1.Add(wx.StaticText(self.panel, -1, '     '), 0)31        grid_1.Add(wx.StaticText(self.panel, -1, "Username:"), 0, wx.RIGHT, 4)32        grid_1.Add(self.text_username, 1, wx.EXPAND, 4)33        grid_1.Add(wx.StaticText(self.panel, -1, '     '), 0)34        grid_1.Add(wx.StaticText(self.panel, -1, "Password:"), 0, wx.RIGHT | wx.TOP, 4)35        grid_1.Add(self.text_password, 1, wx.EXPAND | wx.TOP, 4)36        layout.Add(grid_1, 0, wx.LEFT | wx.RIGHT | wx.TOP, 10)37        self.radio_local = wx.RadioButton(self.panel, -1, "Use a source tarball on local storage")38        self.radio_local.Bind(wx.EVT_RADIOBUTTON, self.OnChooseRadioLocal)39        layout.Add(self.radio_local, 0, wx.LEFT | wx.RIGHT | wx.TOP, 10)40        grid_2 = wx.FlexGridSizer(2, 3)41        self.text_file = wx.TextCtrl(self.panel, -1, size = (325, -1), style = wx.TE_READONLY)42        self.button_choose = wx.Button(self.panel, -1, "Choose")43        self.button_choose.Bind(wx.EVT_BUTTON, self.OnChoose)44        grid_2.Add(wx.StaticText(self.panel, -1, '     '), 0)45        grid_2.Add(wx.StaticText(self.panel, -1, "File:"), 0, wx.RIGHT | wx.TOP, 4)46        grid_2.Add(self.text_file, 1, wx.EXPAND | wx.TOP, 4)47        grid_2.Add(wx.StaticText(self.panel, -1, ''), 0)48        grid_2.Add(wx.StaticText(self.panel, -1, ''), 0)49        grid_2.Add(self.button_choose, 0, wx.TOP, 4)50        layout.Add(grid_2, 0, wx.LEFT | wx.RIGHT | wx.TOP, 10)51        box_1 = wx.BoxSizer(wx.HORIZONTAL)52        self.button_help = wx.Button(self.panel, -1, "Help", size=(70,30))53        self.button_help.Bind(wx.EVT_BUTTON, self.OnHelp)54        self.button_cancel = wx.Button(self.panel, -1, "Cancel", size=(70,30))55        self.button_cancel.Bind(wx.EVT_BUTTON, self.OnCancel)56        self.button_install = wx.Button(self.panel, -1, "Install", size=(70,30))57        self.button_install.Bind(wx.EVT_BUTTON, self.OnInstall)58        box_1.Add(self.button_help, 0, wx.LEFT | wx.BOTTOM, 5)59        box_1.Add(self.button_cancel, 0, wx.LEFT | wx.BOTTOM, 5)60        box_1.Add(self.button_install, 0, wx.LEFT | wx.BOTTOM, 5)61        layout.Add(box_1, 0, wx.ALIGN_BOTTOM | wx.ALIGN_RIGHT | wx.RIGHT | wx.TOP, 10)62        self.text_log = wx.TextCtrl(self.panel, -1, style=wx.TE_MULTILINE | wx.TE_READONLY, size=(50,10))63        layout.Add(self.text_log, 1, wx.LEFT | wx.RIGHT | wx.TOP | wx.BOTTOM | wx.EXPAND, 10)64                                    65        self.panel.SetSizer(layout)66        67        self.Bind(wx.EVT_CLOSE, self.OnClose)68        self.Bind (wx.EVT_IDLE, self.OnIdle)69        self.UpdateState()70    def OnCancel(self, event):71        if (self.process_download):72            self.on_dialog = True73            dialog = wx.MessageDialog(None, 'Downloading is now proceeding.  Stop download?', 'GAMESS Setup', wx.YES_NO | wx.NO_DEFAULT | wx.ICON_EXCLAMATION)74            if dialog.ShowModal() == wx.ID_YES:75                self.process_kill = True76            dialog.Destroy()77            self.on_dialog = False78        elif (self.process_compile):79            self.on_dialog = True80            dialog = wx.MessageDialog(None, 'Compilation is now proceeding.  Stop compilation?', 'GAMESS Setup', wx.YES_NO | wx.NO_DEFAULT | wx.ICON_EXCLAMATION)81            if dialog.ShowModal() == wx.ID_YES:82                self.process_kill = True83            dialog.Destroy()84            self.on_dialog = False85        else:86            self.Destroy()87        self.UpdateState()88    def OnChoose(self, event):89        self.OpenFileDialog()90        self.UpdateState()91    def OnChooseRadioDownload(self, event):92        self.UpdateState()93    def OnChooseRadioLocal(self, event):94        if (not self.text_file.GetValue()):95            self.OpenFileDialog()96        self.UpdateState()97    def OnClose(self, event):98        if (self.process_download or self.process_compile):99            self.OnCancel(event)100        if (not (self.process_download or self.process_compile)):101            self.Destroy()102        self.UpdateState()103    def OnHelp(self, event):104        wx.BeginBusyCursor() 105        import webbrowser 106        webbrowser.open('file://' + scriptdir + '/help.html') 107        wx.EndBusyCursor() 108        109    def OnIdle(self, event):110        if (self.on_dialog): return111        if (self.process_download):112            ret = self.process_download.poll()113            if (ret == None):114                if (self.process_kill):115                    self.process_kill = False116                    self.process_download.kill()117                    self.process_download = None118                    self.text_log.AppendText('Killed.')119                    self.UpdateState()120                else:121                    line = self.process_download.stdout.readline()122                    self.text_log.AppendText(line)123            else:124                self.process_download = None125                if (ret != 0):126                    dialog = wx.MessageDialog(None, 'Invalid username and/or password', 'Error', wx.OK | wx.ICON_ERROR)127                    dialog.ShowModal()128                    dialog.Destroy()129                else:130                    self.StartCompile(os.path.join(self.prefix, 'source', "gamess-current.tar.gz"))131                self.UpdateState()132        elif (self.process_compile):133            ret = self.process_compile.poll()134            if (ret == None):135                if (self.process_kill):136                    self.process_kill = False137                    self.process_compile.kill()138                    self.process_compile = None139                    self.text_log.AppendText('Killed.')140                    self.UpdateState()141                else:142                    line = self.process_compile.stdout.readline()143                    self.text_log.AppendText(line)144            else:145                self.process_compile = None146                if (ret != 0):147                    dialog = wx.MessageDialog(None, 'Error occured during compilation', 'Error', wx.OK | wx.ICON_ERROR)148                    dialog.ShowModal()149                    dialog.Destroy()150                else:151                    dialog = wx.MessageBox('Installation completed', 'GAMESS Setup')152                    self.Destroy()153                self.UpdateState()154    def OnInstall(self, event):155        if (self.radio_download.GetValue()):156            target = os.path.join(self.prefix, 'source')157            tarball = os.path.join(target, "gamess-current.tar.gz")158            username = self.text_username.GetValue()159            password = self.text_password.GetValue()160            if (os.path.exists(tarball)):161                dialog = wx.MessageDialog(None, tarball + ' already exists.  Remove it and continue download?', 'GAMESS Setup', wx.OK | wx.CANCEL | wx.ICON_QUESTION)162                if dialog.ShowModal() == wx.ID_OK:163                    dialog.Destroy()164                    os.remove(tarball)165                else:166                    dialog.Destroy()167                    self.text_file.SetValue(tarball)168                    self.radio_local.SetValue(True)169                    self.UpdateState()170                    return171            if (password == ''):172                dialog = wx.MessageDialog(None, 'Please input password', 'Error', wx.OK | wx.ICON_ERROR)173                dialog.ShowModal()174                dialog.Destroy()175            else:176                self.StartDownload(username, password, target)177        else:178            file = self.text_file.GetValue()179            if (file):180                self.StartCompile(file)181            else:182                dialog = wx.MessageDialog(None, 'Please specify source archive', 'Error',183                                          wx.OK | wx.ICON_ERROR)184                dialog.ShowModal()185                dialog.Destroy()186        self.UpdateState()187    def OnTextPassword(self, event):188        self.UpdateState()189    def OpenFileDialog(self):190        wildCard = "tar.gz file (*.tar.gz)|*.tar.gz|All files (*.*)|*.*"191        if (self.text_file.GetValue()):192            path = os.path.dirname(self.text_file.GetValue())193        else:194            path = os.environ['HOME']195        dialog = wx.FileDialog(self, "Choose a source archive", path, '', wildCard, wx.OPEN)196        if dialog.ShowModal() == wx.ID_OK:197            self.text_file.SetValue(dialog.GetPath())198            self.radio_local.SetValue(True)199        dialog.Destroy()200    def StartCompile(self, file):201        gamessdir = os.path.join(self.prefix, 'share', 'gamess')202        if (os.path.exists(gamessdir)):203            dialog = wx.MessageDialog(None, gamessdir + ' already exists.  Clean up and install GAMESS anyway?', 'GAMESS Setup', wx.OK | wx.CANCEL | wx.ICON_QUESTION)204            if dialog.ShowModal() == wx.ID_OK:205                shutil.rmtree(gamessdir)206                dialog.Destroy()207            else:208                dialog.Destroy()209                return            210        cmd = ['/bin/sh', os.path.join(self.scriptdir, 'compile.sh'), file, self.prefix]211        self.process_compile = subprocess.Popen(cmd, stdout=subprocess.PIPE,212                                                stderr=subprocess.STDOUT,213                                                stdin=subprocess.PIPE)214        self.text_log.AppendText('Start compilation of GAMESS\n')215    def StartDownload(self, username, password, target):216        cmd = ['python2', os.path.join(self.scriptdir, 'download.py'), username, password, target]217        self.process_download = subprocess.Popen(cmd, stdout=subprocess.PIPE,218                                                 stderr=subprocess.STDOUT,219                                                 stdin=subprocess.PIPE)220        self.text_log.AppendText('Start download of GAMESS\n')221        222    def UpdateState(self):223        if (self.process_download or self.process_compile):224            self.radio_download.Disable()225            self.radio_local.Disable()226            self.text_password.Disable()227            self.text_file.Disable()228            self.button_choose.Disable()229            self.button_help.Disable()230            self.button_install.Disable()231        else:232            self.radio_download.Enable()233            self.radio_local.Enable()234            self.button_choose.Enable()235            self.button_help.Enable()236            if (self.radio_download.GetValue()):237                self.text_password.Enable()238                self.text_file.Disable()239                if (self.text_username.GetValue() and len(self.text_password.GetValue()) == 8):240                    self.button_install.Enable()241                else:242                    self.button_install.Disable()243            else:244                self.text_password.Disable()245                self.text_file.Enable()246                if (self.text_file.GetValue()):247                    self.button_install.Enable()248                else:249                    self.button_install.Disable()250if __name__ == '__main__':251    if (len(sys.argv) < 2):252        print("Usage:", sys.argv[0], "prefix")253        sys.exit(127)254    scriptdir = os.path.dirname(sys.argv[0])255    prefix = sys.argv[1]256    app = wx.App()257    frame = Frame(prefix, scriptdir)258    frame.Show()259    app.MainLoop()...selectpath.py
Source:selectpath.py  
...76        generate_pieces = False77        fail=False78        if (self.txtpathphotos.get_text_length() >0 and self.txtpathwork.get_text_length() > 0 and79        self.txtpathwork.get_text()== self.txtpathphotos.get_text()):80            mosaic.on_dialog(self.wdselectpaths,81            _("Please select differents paths"), gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE)82            fail=True83        else:84            if self.txtpathphotos.get_text_length() <= 0:85                generate_pieces = False86                if self.txtpathwork.get_text_length() <= 0:87                    mosaic.on_dialog(self.wdselectpaths,88                    _("Please select a work path"), gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE)89                    fail=True90                else: 91                    if self.check_path_index(self.txtpathwork.get_text()):92                        generate_pieces = False93                        94                    else:95                        mosaic.on_dialog(self.wdselectpaths,96                        _("Please select a work path that contains pieces of mosaic"), gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE)97                        fail=True98            else:99                generate_pieces = True100                if self.txtpathwork.get_text_length() <= 0:101                    mosaic.on_dialog(self.wdselectpaths,102                    _("Please select a work path"), gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE)103                    fail=True104                else: 105                    if self.check_path_index(self.txtpathwork.get_text()):106                        if self.question_generate():107                            generate_pieces = True108                        else:109                            generate_pieces = False110                    else:111                        generate_pieces = True112        113        self.mosaic.txtphotos = self.txtpathphotos.get_text()114        self.mosaic.txtwork = self.txtpathwork.get_text()115        self.mosaic.recursive = self.chbtrecursive.get_active()...mosaic.py
Source:mosaic.py  
...102                if splitpath[len(splitpath)-1] == "mxt":103                    boolmxt=True104         105        if not boolmxt:106            on_dialog(self.wdmosaic, 107            _("Please select a directory that contains pieces of an earlier generation")108            , gtk.MESSAGE_ERROR, gtk.BUTTONS_CANCEL)109                  110        else:111            cmosaic=createmosaic.CreateMosaic(self)    112    def on_btabout_clicked(self, widget, data=None):113        vbabout=about.About()114        115    def loadconfig(self):116        if os.path.exists(self.fileOptions):117            cfg = ConfigParser.SafeConfigParser()118            cfg.readfp(file(self.fileOptions))119            try:120                self.txtphotos = cfg.get("SelectPath", "txtphotos")121                self.txtwork = cfg.get("SelectPath", "txtwork")122                if cfg.get("SelectPath", "recursive")=="True":123                    self.recursive = True124                else:125                    self.recursive = False126                self.width = int(cfg.get("SelectPath", "width"))127                self.height = int(cfg.get("SelectPath", "height"))128                self.scale = int(cfg.get("CreateMosaic", "scale"))129                self.distance = int(cfg.get("CreateMosaic", "distance"))130                self.cheat = int(cfg.get("CreateMosaic", "cheat"))131                self.orig=cfg.get("CreateMosaic", "orig")132                return False133            except (ConfigParser.NoOptionError, ConfigParser.NoSectionError):134                on_dialog(self.wdmosaic, 135                _("Config file is wrong, default config file will be used"),136                gtk.MESSAGE_ERROR,gtk.BUTTONS_CLOSE)137                138                return True139        else:140            self.loaddefault()141            return False142        143def on_dialog(parent, text, type, buttons):144    md = gtk.MessageDialog(parent, gtk.DIALOG_DESTROY_WITH_PARENT,145                type, buttons, text)146    if type==gtk.MESSAGE_ERROR:147        md.set_title("Getapixel - Error")148        md.set_icon_from_file("/usr/share/icons/gnome/16x16/actions/gtk-stop.png")149    elif type==gtk.MESSAGE_INFO:150        md.set_title("Getapixel - Info")151        md.set_icon_from_file(PATH_ICON+"getapixel_46x46.png")152    md.run()153    md.destroy() 154if __name__ == "__main__":155    mosaic=Mosaic()156    mosaic.main()157                            LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!
