\section{\module{py_compile} ---
         Compile Python source files}

% Documentation based on module docstrings, by Fred L. Drake, Jr.
% <fdrake@acm.org>

\declaremodule[pycompile]{standard}{py_compile}

\modulesynopsis{Compile Python source files to byte-code files.}


\indexii{file}{byte-code}
The \module{py_compile} module provides a function to generate a
byte-code file from a source file, and another function used when the
module source file is invoked as a script.

Though not often needed, this function can be useful when installing
modules for shared use, especially if some of the users may not have
permission to write the byte-code cache files in the directory
containing the source code.

\begin{excdesc}{PyCompileError}
Exception raised when an error occurs while attempting to compile the file.
\end{excdesc}

\begin{funcdesc}{compile}{file\optional{, cfile\optional{, dfile\optional{, doraise}}}}
  Compile a source file to byte-code and write out the byte-code cache 
  file.  The source code is loaded from the file name \var{file}.  The 
  byte-code is written to \var{cfile}, which defaults to \var{file}
  \code{+} \code{'c'} (\code{'o'} if optimization is enabled in the
  current interpreter).  If \var{dfile} is specified, it is used as
  the name of the source file in error messages instead of \var{file}. 
  If \var{doraise} = True, a PyCompileError is raised when an error is 
  encountered while compiling \var{file}. If \var{doraise} = False (the default), 
  an error string is written to sys.stderr, but no exception is raised.
\end{funcdesc}

\begin{funcdesc}{main}{\optional{args}}
  Compile several source files.  The files named in \var{args} (or on
  the command line, if \var{args} is not specified) are compiled and
  the resulting bytecode is cached in the normal manner.  This
  function does not search a directory structure to locate source
  files; it only compiles files named explicitly.
\end{funcdesc}

When this module is run as a script, the \function{main()} is used to
compile all the files named on the command line.

\begin{seealso}
  \seemodule{compileall}{Utilities to compile all Python source files
                         in a directory tree.}
\end{seealso}
