Added a main() function and support to run this module as a script.
Closes SF feature request #588768.
This commit is contained in:
parent
a96f1a3c08
commit
61cf4407be
|
@ -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.}
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue