diff options
author | Fred Drake <fdrake@acm.org> | 2002-08-21 20:56:21 +0000 |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2002-08-21 20:56:21 +0000 |
commit | 61cf4407be9c726c935e1fe82b06a2617b15287e (patch) | |
tree | 6864cac7e3c8e42b47c4be2f56cd8fb2aeb24b03 | |
parent | a96f1a3c08fbe9452c24bb163b4480b5c67d1e8d (diff) | |
download | cpython-git-61cf4407be9c726c935e1fe82b06a2617b15287e.tar.gz |
Added a main() function and support to run this module as a script.
Closes SF feature request #588768.
-rw-r--r-- | Doc/lib/libpycompile.tex | 16 | ||||
-rw-r--r-- | Lib/py_compile.py | 20 |
2 files changed, 33 insertions, 3 deletions
diff --git a/Doc/lib/libpycompile.tex b/Doc/lib/libpycompile.tex index ebbc9b907b..a28b4fe5e0 100644 --- a/Doc/lib/libpycompile.tex +++ b/Doc/lib/libpycompile.tex @@ -10,8 +10,9 @@ \indexii{file}{byte-code} -The \module{py_compile} module provides a single function to generate -a byte-code file from a source file. +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 @@ -29,6 +30,17 @@ containing the source code. \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.} diff --git a/Lib/py_compile.py b/Lib/py_compile.py index 4a3a8a0528..2d5c36a2b2 100644 --- a/Lib/py_compile.py +++ b/Lib/py_compile.py @@ -12,7 +12,7 @@ import traceback MAGIC = imp.get_magic() -__all__ = ["compile"] +__all__ = ["compile", "main"] # Define an internal helper according to the platform if os.name == "mac": @@ -86,3 +86,21 @@ def compile(file, cfile=None, dfile=None): fc.write(MAGIC) fc.close() set_creator_type(cfile) + +def main(args=None): + """Compile several source files. + + The files named in 'args' (or on the command line, if '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. + + """ + if args is None: + args = sys.argv[1:] + for filename in args: + compile(filename) + +if __name__ == "__main__": + main() |