mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
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
2 changed files with 33 additions and 3 deletions
|
@ -10,8 +10,9 @@
|
||||||
|
|
||||||
|
|
||||||
\indexii{file}{byte-code}
|
\indexii{file}{byte-code}
|
||||||
The \module{py_compile} module provides a single function to generate
|
The \module{py_compile} module provides a function to generate a
|
||||||
a byte-code file from a source file.
|
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
|
Though not often needed, this function can be useful when installing
|
||||||
modules for shared use, especially if some of the users may not have
|
modules for shared use, especially if some of the users may not have
|
||||||
|
@ -29,6 +30,17 @@ containing the source code.
|
||||||
\end{funcdesc}
|
\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}
|
\begin{seealso}
|
||||||
\seemodule{compileall}{Utilities to compile all Python source files
|
\seemodule{compileall}{Utilities to compile all Python source files
|
||||||
in a directory tree.}
|
in a directory tree.}
|
||||||
|
|
|
@ -12,7 +12,7 @@ import traceback
|
||||||
|
|
||||||
MAGIC = imp.get_magic()
|
MAGIC = imp.get_magic()
|
||||||
|
|
||||||
__all__ = ["compile"]
|
__all__ = ["compile", "main"]
|
||||||
|
|
||||||
# Define an internal helper according to the platform
|
# Define an internal helper according to the platform
|
||||||
if os.name == "mac":
|
if os.name == "mac":
|
||||||
|
@ -86,3 +86,21 @@ def compile(file, cfile=None, dfile=None):
|
||||||
fc.write(MAGIC)
|
fc.write(MAGIC)
|
||||||
fc.close()
|
fc.close()
|
||||||
set_creator_type(cfile)
|
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…
Add table
Add a link
Reference in a new issue