diff options
Diffstat (limited to 'Doc/library/compileall.rst')
-rw-r--r-- | Doc/library/compileall.rst | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Doc/library/compileall.rst b/Doc/library/compileall.rst new file mode 100644 index 0000000000..d62b785dc9 --- /dev/null +++ b/Doc/library/compileall.rst @@ -0,0 +1,57 @@ + +:mod:`compileall` --- Byte-compile Python libraries +=================================================== + +.. module:: compileall + :synopsis: Tools for byte-compiling all Python source files in a directory tree. + + +This module provides some utility functions to support installing Python +libraries. These functions compile Python source files in a directory tree, +allowing users without permission to write to the libraries to take advantage of +cached byte-code files. + +The source file for this module may also be used as a script to compile Python +sources in directories named on the command line or in ``sys.path``. + + +.. function:: compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]]) + + Recursively descend the directory tree named by *dir*, compiling all :file:`.py` + files along the way. The *maxlevels* parameter is used to limit the depth of + the recursion; it defaults to ``10``. If *ddir* is given, it is used as the + base path from which the filenames used in error messages will be generated. + If *force* is true, modules are re-compiled even if the timestamps are up to + date. + + If *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 *quiet* is true, nothing is printed to the standard output in normal + operation. + + +.. function:: compile_path([skip_curdir[, maxlevels[, force]]]) + + Byte-compile all the :file:`.py` files found along ``sys.path``. If + *skip_curdir* is true (the default), the current directory is not included in + the search. The *maxlevels* and *force* parameters default to ``0`` and are + passed to the :func:`compile_dir` function. + +To force a recompile of all the :file:`.py` files in the :file:`Lib/` +subdirectory and all its subdirectories:: + + import compileall + + compileall.compile_dir('Lib/', force=True) + + # Perform same compilation, excluding files in .svn directories. + import re + compileall.compile_dir('Lib/', rx=re.compile('/[.]svn'), force=True) + + +.. seealso:: + + Module :mod:`py_compile` + Byte-compile a single source file. + |