py_compile vs. built-in compile, with __future__
Terry Jan Reedy
tjreedy at udel.edu
Mon Jun 10 16:59:35 EDT 2013
On 6/10/2013 11:33 AM, dhyams wrote:
> The built-in compile() function has a "flags" parameter that one can
> use to influence the "__future__" mechanism. However,
> py_compile.compile, which I'm using to byte-compile code, doesn't
> have an equivalent means to do this.
That flag was added to compile bacause it is needed to compile
expressions and single statements, whether in string or ast form, that
use future syntax. It is impossible to include a future statement with
either. It is not needed for compiling multiple statements.
> Is this by design, or would this be considered a bug?
Design, not needed.
> import __future__
> py_compile.compile("foobar.py",flags=__future__.CO_FUTURE_DIVISION)
Put the future statement inside foobar.py just as you would do if
running it from the command line. Notice that there is no command-line
future flag either.
Terry
More information about the Python-list
mailing list