[Pymoul-svn] SF.net SVN: pymoul: [23] pymoul/trunk
Status: Alpha
Brought to you by:
tiran
From: <ti...@us...> - 2007-01-15 15:19:01
|
Revision: 23 http://pymoul.svn.sourceforge.net/pymoul/?rev=23&view=rev Author: tiran Date: 2007-01-15 07:19:00 -0800 (Mon, 15 Jan 2007) Log Message: ----------- propset svn:eol-style native for all py, txt, ui and qrc files Modified Paths: -------------- pymoul/trunk/compileui.py pymoul/trunk/setup_win32.py Property Changed: ---------------- pymoul/trunk/compileui.py pymoul/trunk/ez_setup.py pymoul/trunk/misc/build_exe.py pymoul/trunk/setup.py pymoul/trunk/setup_win32.py pymoul/trunk/src/moul/__init__.py pymoul/trunk/src/moul/cli/__init__.py pymoul/trunk/src/moul/cli/moullauncher.py pymoul/trunk/src/moul/config/__init__.py pymoul/trunk/src/moul/config/generic.py pymoul/trunk/src/moul/config/miniwinshell.py pymoul/trunk/src/moul/config/win32.py pymoul/trunk/src/moul/crypt/__init__.py pymoul/trunk/src/moul/crypt/bitops.py pymoul/trunk/src/moul/crypt/elf.py pymoul/trunk/src/moul/crypt/whatdoyousee.py pymoul/trunk/src/moul/crypt/xtea.py pymoul/trunk/src/moul/file/__init__.py pymoul/trunk/src/moul/file/chatlog.py pymoul/trunk/src/moul/file/kiimage.py pymoul/trunk/src/moul/file/localization.py pymoul/trunk/src/moul/file/plasmalog.py pymoul/trunk/src/moul/file/wdysini.py pymoul/trunk/src/moul/log.py pymoul/trunk/src/moul/metadata.py pymoul/trunk/src/moul/qt/__init__.py pymoul/trunk/src/moul/qt/moulqt.py pymoul/trunk/src/moul/qt/ui/__init__.py pymoul/trunk/src/moul/qt/ui/mainwindow.py pymoul/trunk/src/moul/qt/ui/mainwindow.ui pymoul/trunk/src/moul/qt/ui/moulqt.qrc pymoul/trunk/src/moul/qt/ui/moulqt_rc.py pymoul/trunk/src/moul/time/__init__.py pymoul/trunk/src/moul/time/cavern.py pymoul/trunk/src/moul/time/dni.py Modified: pymoul/trunk/compileui.py =================================================================== --- pymoul/trunk/compileui.py 2007-01-15 15:15:25 UTC (rev 22) +++ pymoul/trunk/compileui.py 2007-01-15 15:19:00 UTC (rev 23) @@ -1,100 +1,100 @@ -#!/usr/bin/env python2.5 -"""Compile QtDesigner's UI and QRC files to Python files -""" -import os -import re - -from PyQt4 import uic - -RE_RC_TEXT = "^import\ (?P<module>[a-zA-Z]\w*_rc)\s$" -RE_RC = re.compile(RE_RC_TEXT) - -UI_EXT = '.ui' -PY_EXT = '.py' -QRC_EXT = '.qrc' -PY_QRC_EXT = '_rc.py' -QRC_COMPILER = "pyrcc4 -o %(py)s %(qrc)s" -UI_MODULE = "moul.qt.ui" - -def previewUi(uifname): - """Copied from PyQt.uic.pyuic - """ - from PyQt4 import QtGui - app = QtGui.QApplication([uifname]) - widget = uic.loadUi(uifname) - widget.show() - return app.exec_() - -def findFiles(base): - uis = [] - qrcs = [] - if not os.path.isdir(base): - raise IOError("%s is not a directory" % root) - for root, dirs, files in os.walk(base): - if '.svn' in dirs: - dirs.remove('.svn') - for file in files: - if file.endswith(UI_EXT): - uis.append((root, file)) - if file.endswith(QRC_EXT): - qrcs.append((root, file)) - return uis, qrcs - -def compileUiFiles(uis, execute=False, preview=False): - pys = [] - for root, ui_name in uis: - py_name = ui_name.lower()[:-len(UI_EXT)]+PY_EXT - ui_path = os.path.join(root, ui_name) - py_path = os.path.join(root, py_name) - ui = open(ui_path, 'r') - py = open(py_path, 'w') - err = uic.compileUi(ui, py, execute) - ui.close() - py.close() - if err: - raise RuntimeError("%s: %s" % (ui_path, str(err))) - fixRelativeImport(py_path) - if preview: - previewUi(ui_path) - pys.append(py_path) - return pys - -def fixRelativeImport(fname): - lines = [] - fin = open(fname, 'r') - for line in fin: - - if line.startswith('import'): - # faster than re - match = RE_RC.match(line) - if match: - line = match.expand("from %s import \g<module>" % UI_MODULE) - lines.append(line) - fin.close() - fout = open(fname, 'w') - fout.write(''.join(lines)) - fout.close() - -def compileQRCFiles(qrcs): - pys = [] - for root, qrc_name in qrcs: - py_name = qrc_name.lower()[:-len(QRC_EXT)]+PY_QRC_EXT - kw = {} - kw['qrc'] = os.path.join(root, qrc_name) - kw['py'] = os.path.join(root, py_name) - err = os.system(QRC_COMPILER % kw) - if err != 0: - raise RuntimeError("pyrcc error") - pys.append(kw['py']) - return pys - -def compileUi(base='src', execute=True, preview=False): - uis, qrcs = findFiles(base) - upys = compileUiFiles(uis, execute=execute, preview=preview) - qpys = compileQRCFiles(qrcs) - return upys + qpys - -if __name__ == '__main__': - pys = compileUi() - print "Python files written:\n" - print '\n'.join(pys) +#!/usr/bin/env python2.5 +"""Compile QtDesigner's UI and QRC files to Python files +""" +import os +import re + +from PyQt4 import uic + +RE_RC_TEXT = "^import\ (?P<module>[a-zA-Z]\w*_rc)\s$" +RE_RC = re.compile(RE_RC_TEXT) + +UI_EXT = '.ui' +PY_EXT = '.py' +QRC_EXT = '.qrc' +PY_QRC_EXT = '_rc.py' +QRC_COMPILER = "pyrcc4 -o %(py)s %(qrc)s" +UI_MODULE = "moul.qt.ui" + +def previewUi(uifname): + """Copied from PyQt.uic.pyuic + """ + from PyQt4 import QtGui + app = QtGui.QApplication([uifname]) + widget = uic.loadUi(uifname) + widget.show() + return app.exec_() + +def findFiles(base): + uis = [] + qrcs = [] + if not os.path.isdir(base): + raise IOError("%s is not a directory" % root) + for root, dirs, files in os.walk(base): + if '.svn' in dirs: + dirs.remove('.svn') + for file in files: + if file.endswith(UI_EXT): + uis.append((root, file)) + if file.endswith(QRC_EXT): + qrcs.append((root, file)) + return uis, qrcs + +def compileUiFiles(uis, execute=False, preview=False): + pys = [] + for root, ui_name in uis: + py_name = ui_name.lower()[:-len(UI_EXT)]+PY_EXT + ui_path = os.path.join(root, ui_name) + py_path = os.path.join(root, py_name) + ui = open(ui_path, 'r') + py = open(py_path, 'w') + err = uic.compileUi(ui, py, execute) + ui.close() + py.close() + if err: + raise RuntimeError("%s: %s" % (ui_path, str(err))) + fixRelativeImport(py_path) + if preview: + previewUi(ui_path) + pys.append(py_path) + return pys + +def fixRelativeImport(fname): + lines = [] + fin = open(fname, 'r') + for line in fin: + + if line.startswith('import'): + # faster than re + match = RE_RC.match(line) + if match: + line = match.expand("from %s import \g<module>" % UI_MODULE) + lines.append(line) + fin.close() + fout = open(fname, 'w') + fout.write(''.join(lines)) + fout.close() + +def compileQRCFiles(qrcs): + pys = [] + for root, qrc_name in qrcs: + py_name = qrc_name.lower()[:-len(QRC_EXT)]+PY_QRC_EXT + kw = {} + kw['qrc'] = os.path.join(root, qrc_name) + kw['py'] = os.path.join(root, py_name) + err = os.system(QRC_COMPILER % kw) + if err != 0: + raise RuntimeError("pyrcc error") + pys.append(kw['py']) + return pys + +def compileUi(base='src', execute=True, preview=False): + uis, qrcs = findFiles(base) + upys = compileUiFiles(uis, execute=execute, preview=preview) + qpys = compileQRCFiles(qrcs) + return upys + qpys + +if __name__ == '__main__': + pys = compileUi() + print "Python files written:\n" + print '\n'.join(pys) Property changes on: pymoul/trunk/compileui.py ___________________________________________________________________ Name: eol-style + native Name: svn:eol-style + native Property changes on: pymoul/trunk/ez_setup.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/misc/build_exe.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/setup.py ___________________________________________________________________ Name: eol-style + native Modified: pymoul/trunk/setup_win32.py =================================================================== --- pymoul/trunk/setup_win32.py 2007-01-15 15:15:25 UTC (rev 22) +++ pymoul/trunk/setup_win32.py 2007-01-15 15:19:00 UTC (rev 23) @@ -1,81 +1,81 @@ -"""Win23 helpers for setup.py -""" -import os -import sys -from setuptools import find_packages - -try: - import py2exe -except ImportError: - print >>sys.stderr, "py2exe missing, unable to create executables" -else: - # If run without args, build executables, in quiet mode. - if len(sys.argv) == 1: - sys.argv.append("py2exe") - -# py2exe's ModuleFinder can't handle runtime changes to __path__, -# but win32com uses them -try: - import modulefinder - import win32com - for p in win32com.__path__[1:]: - modulefinder.AddPackagePath("win32com", p) - for extra in ["win32com.shell"]: - __import__(extra) - m = sys.modules[extra] - for p in m.__path__[1:]: - modulefinder.AddPackagePath(extra, p) -except ImportError: - # no build path setup, no worries. - pass - -def inEnvPath(name): - result = [] - for path in os.environ['PATH'].split(';'): - upx = os.path.join(path, name) - if os.path.isfile(upx): - result.append(upx) - if result: - return result[0] - -def upxPack(dst): - """Pack PE executables with UPX http://upx.sourceforge.net/ - - UPX can shrink dll, exe and pyd files 50 to 70% without disadvantage - """ - if not inEnvPath('upx.exe'): - print >>sys.stderr, "UPX not available - skipping" - upx_pack = [] - for root, dirs, files in os.walk(dst): - for file in files: - if file[-4:] in ('.pyd', '.dll', '.exe'): - upx_pack.append(os.path.join(root, file)) - # --best --all-methods --all-filters - os.system("upx -q --mono %s" % ' '.join(upx_pack)) - -def updateSetupOptions(kw): - for req in ("py2exe >=0.6.5",): - kw['setup_requires'].append(req) - for req in (): - kw['install_requires'].append(req) - kw['console'] = [ - { "script" : "src/moul/cli/moullauncher.py", - "icon_resources": [(1, "src/moul/uru.ico")] - } - ] - pexe = kw['options'].setdefault('py2exe', {}) - pexe['compressed'] = 100 # compress zip file - pexe['optimize'] = 0 # 0,1,2 - #pexe['includes'] = 'encodings,encodings.*' - kw['zipfile'] = 'library.zip' - -def updateSetupOptionsQT(kw): - pexe = kw['options'].setdefault('py2exe', {}) - #pexe['includes'] = 'PyQt4' - kw['packages'].append('moul.qt') - windows = kw.setdefault('windows', []) - windows.append({ - "script" : "src/moul/qt/moulqt.py", - "icon_resources": [(1, "src/moul/uru.ico")] - } - ) +"""Win23 helpers for setup.py +""" +import os +import sys +from setuptools import find_packages + +try: + import py2exe +except ImportError: + print >>sys.stderr, "py2exe missing, unable to create executables" +else: + # If run without args, build executables, in quiet mode. + if len(sys.argv) == 1: + sys.argv.append("py2exe") + +# py2exe's ModuleFinder can't handle runtime changes to __path__, +# but win32com uses them +try: + import modulefinder + import win32com + for p in win32com.__path__[1:]: + modulefinder.AddPackagePath("win32com", p) + for extra in ["win32com.shell"]: + __import__(extra) + m = sys.modules[extra] + for p in m.__path__[1:]: + modulefinder.AddPackagePath(extra, p) +except ImportError: + # no build path setup, no worries. + pass + +def inEnvPath(name): + result = [] + for path in os.environ['PATH'].split(';'): + upx = os.path.join(path, name) + if os.path.isfile(upx): + result.append(upx) + if result: + return result[0] + +def upxPack(dst): + """Pack PE executables with UPX http://upx.sourceforge.net/ + + UPX can shrink dll, exe and pyd files 50 to 70% without disadvantage + """ + if not inEnvPath('upx.exe'): + print >>sys.stderr, "UPX not available - skipping" + upx_pack = [] + for root, dirs, files in os.walk(dst): + for file in files: + if file[-4:] in ('.pyd', '.dll', '.exe'): + upx_pack.append(os.path.join(root, file)) + # --best --all-methods --all-filters + os.system("upx -q --mono %s" % ' '.join(upx_pack)) + +def updateSetupOptions(kw): + for req in ("py2exe >=0.6.5",): + kw['setup_requires'].append(req) + for req in (): + kw['install_requires'].append(req) + kw['console'] = [ + { "script" : "src/moul/cli/moullauncher.py", + "icon_resources": [(1, "src/moul/uru.ico")] + } + ] + pexe = kw['options'].setdefault('py2exe', {}) + pexe['compressed'] = 100 # compress zip file + pexe['optimize'] = 0 # 0,1,2 + #pexe['includes'] = 'encodings,encodings.*' + kw['zipfile'] = 'library.zip' + +def updateSetupOptionsQT(kw): + pexe = kw['options'].setdefault('py2exe', {}) + #pexe['includes'] = 'PyQt4' + kw['packages'].append('moul.qt') + windows = kw.setdefault('windows', []) + windows.append({ + "script" : "src/moul/qt/moulqt.py", + "icon_resources": [(1, "src/moul/uru.ico")] + } + ) Property changes on: pymoul/trunk/setup_win32.py ___________________________________________________________________ Name: eol-style + native Name: svn:eol-style + native Property changes on: pymoul/trunk/src/moul/__init__.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/cli/__init__.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/cli/moullauncher.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/config/__init__.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/config/generic.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/config/miniwinshell.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/config/win32.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/crypt/__init__.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/crypt/bitops.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/crypt/elf.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/crypt/whatdoyousee.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/crypt/xtea.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/file/__init__.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/file/chatlog.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/file/kiimage.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/file/localization.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/file/plasmalog.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/file/wdysini.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/log.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/metadata.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/qt/__init__.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/qt/moulqt.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/qt/ui/__init__.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/qt/ui/mainwindow.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/qt/ui/mainwindow.ui ___________________________________________________________________ Name: svn:eol-style + native Property changes on: pymoul/trunk/src/moul/qt/ui/moulqt.qrc ___________________________________________________________________ Name: svn:eol-style + native Property changes on: pymoul/trunk/src/moul/qt/ui/moulqt_rc.py ___________________________________________________________________ Name: eol-style + native Property changes on: pymoul/trunk/src/moul/time/__init__.py ___________________________________________________________________ Name: eol-style + native Name: svn:eol-style + native Property changes on: pymoul/trunk/src/moul/time/cavern.py ___________________________________________________________________ Name: eol-style + native Name: svn:eol-style + native Property changes on: pymoul/trunk/src/moul/time/dni.py ___________________________________________________________________ Name: eol-style + native Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |