diff options
-rw-r--r-- | Doc/lib/libcompileall.tex | 12 | ||||
-rw-r--r-- | Lib/compileall.py | 28 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
3 files changed, 31 insertions, 11 deletions
diff --git a/Doc/lib/libcompileall.tex b/Doc/lib/libcompileall.tex index a731245095..d39a5481f1 100644 --- a/Doc/lib/libcompileall.tex +++ b/Doc/lib/libcompileall.tex @@ -17,14 +17,22 @@ compile Python sources in directories named on the command line or in \begin{funcdesc}{compile_dir}{dir\optional{, maxlevels\optional{, - ddir\optional{, force}}}} + ddir\optional{, force\optional{, + rx\optional{, quiet}}}}}} Recursively descend the directory tree named by \var{dir}, compiling all \file{.py} files along the way. The \var{maxlevels} parameter is used to limit the depth of the recursion; it defaults to \code{10}. If \var{ddir} is given, it is used as the base path from which the filenames used in error messages will be generated. If \var{force} is true, modules are re-compiled even if the timestamps - are up to date. + are up to date. + + If \var{rx} is given, it specifies a regular expression of file + names to exclude from the search; that expression is searched for in + the full path. + + If \var{quiet} is true, nothing is printed to the standard output + in normal operation. \end{funcdesc} \begin{funcdesc}{compile_path}{\optional{skip_curdir\optional{, diff --git a/Lib/compileall.py b/Lib/compileall.py index cb4a3e94ac..8110fb95fb 100644 --- a/Lib/compileall.py +++ b/Lib/compileall.py @@ -19,7 +19,8 @@ import py_compile __all__ = ["compile_dir","compile_path"] -def compile_dir(dir, maxlevels=10, ddir=None, force=0, rx=None): +def compile_dir(dir, maxlevels=10, ddir=None, + force=0, rx=None, quiet=0): """Byte-compile all modules in the given directory tree. Arguments (only dir is required): @@ -29,9 +30,11 @@ def compile_dir(dir, maxlevels=10, ddir=None, force=0, rx=None): ddir: if given, purported directory name (this is the directory name that will show up in error messages) force: if 1, force compilation, even if timestamps are up-to-date + quiet: if 1, be quiet during compilation """ - print 'Listing', dir, '...' + if not quiet: + print 'Listing', dir, '...' try: names = os.listdir(dir) except os.error: @@ -57,7 +60,8 @@ def compile_dir(dir, maxlevels=10, ddir=None, force=0, rx=None): try: ctime = os.stat(cfile)[stat.ST_MTIME] except os.error: ctime = 0 if (ctime > ftime) and not force: continue - print 'Compiling', fullname, '...' + if not quiet: + print 'Compiling', fullname, '...' try: ok = py_compile.compile(fullname, None, dfile) except KeyboardInterrupt: @@ -77,11 +81,11 @@ def compile_dir(dir, maxlevels=10, ddir=None, force=0, rx=None): name != os.curdir and name != os.pardir and \ os.path.isdir(fullname) and \ not os.path.islink(fullname): - if not compile_dir(fullname, maxlevels - 1, dfile, force, rx): + if not compile_dir(fullname, maxlevels - 1, dfile, force, rx, quiet): success = 0 return success -def compile_path(skip_curdir=1, maxlevels=0, force=0): +def compile_path(skip_curdir=1, maxlevels=0, force=0, quiet=0): """Byte-compile all module on sys.path. Arguments (all optional): @@ -89,6 +93,7 @@ def compile_path(skip_curdir=1, maxlevels=0, force=0): skip_curdir: if true, skip current directory (default true) maxlevels: max recursion level (default 0) force: as for compile_dir() (default 0) + quiet: as for compile_dir() (default 0) """ success = 1 @@ -96,20 +101,22 @@ def compile_path(skip_curdir=1, maxlevels=0, force=0): if (not dir or dir == os.curdir) and skip_curdir: print 'Skipping current directory' else: - success = success and compile_dir(dir, maxlevels, None, force) + success = success and compile_dir(dir, maxlevels, None, + force, quiet=quiet) return success def main(): """Script main program.""" import getopt try: - opts, args = getopt.getopt(sys.argv[1:], 'lfd:x:') + opts, args = getopt.getopt(sys.argv[1:], 'lfqd:x:') except getopt.error, msg: print msg - print "usage: python compileall.py [-l] [-f] [-d destdir] " \ + print "usage: python compileall.py [-l] [-f] [-q] [-d destdir] " \ "[-s regexp] [directory ...]" print "-l: don't recurse down" print "-f: force rebuild even if timestamps are up-to-date" + print "-q: quiet operation" print "-d destdir: purported directory name for error messages" print " if no directory arguments, -l sys.path is assumed" print "-x regexp: skip files matching the regular expression regexp" @@ -118,11 +125,13 @@ def main(): maxlevels = 10 ddir = None force = 0 + quiet = 0 rx = None for o, a in opts: if o == '-l': maxlevels = 0 if o == '-d': ddir = a if o == '-f': force = 1 + if o == '-q': quiet = 1 if o == '-x': import re rx = re.compile(a) @@ -134,7 +143,8 @@ def main(): try: if args: for dir in args: - if not compile_dir(dir, maxlevels, ddir, force, rx): + if not compile_dir(dir, maxlevels, ddir, + force, rx, quiet): success = 0 else: success = compile_path() @@ -44,6 +44,8 @@ Extension modules Library +- compileall now supports quiet operation. + - The BaseHTTPServer implements now optionally HTTP/1.1 persistent connections. |