From: Thomas H. <th...@us...> - 2004-06-08 19:13:39
|
Update of /cvsroot/py2exe/py2exe/py2exe In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31030 Modified Files: build_exe.py Log Message: Add support for including precompiled pyc and pyo files, based on a patch from Shane Holloway. Index: build_exe.py =================================================================== RCS file: /cvsroot/py2exe/py2exe/py2exe/build_exe.py,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** build_exe.py 6 May 2004 08:28:34 -0000 1.28 --- build_exe.py 8 Jun 2004 19:13:17 -0000 1.29 *************** *** 24,27 **** --- 24,28 ---- RT_BITMAP=2 + _py_suffixes = ['.py', '.pyo', '.pyc'] _c_suffixes = [_triple[0] for _triple in imp.get_suffixes() if _triple[2] == imp.C_EXTENSION] *************** *** 780,793 **** src = item.__file__ if src: ! if src.endswith(".py"): py_files.append(item) ! continue ! for suffix in _c_suffixes: ! if src.endswith(suffix): ! extensions.append(item) ! loader = self.create_loader(item) ! if loader: ! py_files.append(loader) ! break else: raise RuntimeError \ --- 781,793 ---- src = item.__file__ if src: ! suffix = os.path.splitext(src)[1] ! ! if suffix in _py_suffixes: py_files.append(item) ! elif suffix in _c_suffixes: ! extensions.append(item) ! loader = self.create_loader(item) ! if loader: ! py_files.append(loader) else: raise RuntimeError \ *************** *** 1138,1146 **** from distutils.dir_util import mkpath from distutils.dep_util import newer for file in py_files: - if file.__file__[-3:] != ".py": - raise RuntimeError, "cannot compile '%s'" % file.__file__ - # Terminology from the py_compile module: # cfile - byte-compiled file --- 1138,1144 ---- from distutils.dir_util import mkpath from distutils.dep_util import newer + from distutils.file_util import copy_file for file in py_files: # Terminology from the py_compile module: # cfile - byte-compiled file *************** *** 1160,1164 **** if not dry_run: mkpath(os.path.dirname(cfile)) ! compile(file.__file__, cfile, dfile) else: if verbose: --- 1158,1172 ---- if not dry_run: mkpath(os.path.dirname(cfile)) ! suffix = os.path.splitext(file.__file__)[1] ! if suffix == ".py": ! compile(file.__file__, cfile, dfile) ! elif suffix in _py_suffixes: ! # Minor problem: This will happily copy a file ! # <mod>.pyo to <mod>.pyc or <mod>.pyc to ! # <mod>.pyo, but it does seem to work. ! copy_file(file.__file__, cfile) ! else: ! raise RuntimeError \ ! ("Don't know how to handle %r" % file.__file__) else: if verbose: |