[GRASS-user] Re: GIS Manager map properties (wxpython)

Tim Michelsen timmichelsen at gmx-topmail.de
Wed Jun 17 04:27:57 EDT 2009


> > Are the GUI program files byte-compiled into *.pyc files
> > during install?
> 
> not sure what happens in the installer, but if not that should happen
> automatically the first time you run it, assuming you have write
> permissions in the install directory.
> 
> fwiw using the rc5 native wingrass installer I seem to have only .py
> files in $GISBASE/etc/wxpython/, but do see .pyc in
$GISBASE/etc/wxpython/gui_modules and $GISBASE/python.
> 
> (and as you might expect wxgui.py is slow to start)
Below is a script used by PythonXY for opimazation.
Maybe of interest for GRASS, too.

I do not have any further experience with optimazation on windows.
But it happens also on linux that the dialogs take time to pop-up.

For instance calling g.region on CML.

I guess there is happening something inside the wrapper...

(2x1.8Ghz, RAM> 2MB).

BTW, taking about the perfomance of a program shows that the 
design has reached a 
fairly stable state... These are minor improvements.
First, we need to be happy to have it.

Regards,
Timmie


#### from PythonXY

# -*- coding: latin-1 -*-
#
#    Copyright © 2008 Pierre Raybaut
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#    
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#    
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

from PyQt4.QtGui import QApplication, QMessageBox, QFileDialog, QIcon
import os.path as osp
import time, sys, os
from xy.xyutils import getreg

REGXY = getreg()
LIBPATH = osp.join(REGXY['Python'],'Lib')

def optimize(path):
    assert osp.exists(path) and osp.isdir(path)
    batfile = 'optimize_temp.bat'
    f=open(batfile,'w')
    f.write('python -O "%s\compileall.py" "%s"' % (LIBPATH,path) )
    f.close()
    os.startfile(batfile)
    time.sleep(3)
    os.remove(batfile)

def main():
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon(osp.dirname(__file__)+'/img/pyc.png'))
    directory = QFileDialog.getExistingDirectory(None,"Select directory to
optimize",osp.join(LIBPATH,'site-packages'))
    if not directory.isEmpty() and QMessageBox.question(None, "Optimize",
                                       "Do you really want to compile all .py
files to .pyo in the following directory?"+"\n\n"+directory,
                                       QMessageBox.Yes, QMessageBox.No) ==
QMessageBox.Yes:
        optimize(directory)

if __name__ == "__main__":
    if len(sys.argv)>1:
        optimize(sys.argv[1])
    else:
        main()




More information about the grass-user mailing list