\section{\module{__future__} ---
         Future statement definitions}

\declaremodule[future]{standard}{__future__}
\modulesynopsis{Future statement definitions}

\module{__future__} is a real module, and serves three purposes:

\begin{itemize}

\item To avoid confusing existing tools that analyze import statements
      and expect to find the modules they're importing.

\item To ensure that future_statements run under releases prior to 2.1
      at least yield runtime exceptions (the import of
      \module{__future__} will fail, because there was no module of
      that name prior to 2.1). 

\item To document when incompatible changes were introduced, and when they
      will be --- or were --- made mandatory.  This is a form of executable
      documentation, and can be inspected programatically via importing
      \module{__future__} and examining its contents.

\end{itemize}

Each statement in \file{__future__.py} is of the form:

\begin{alltt}
FeatureName = "_Feature(" \var{OptionalRelease} "," \var{MandatoryRelease} ","
                        \var{CompilerFlag} ")"
\end{alltt}

where, normally, \var{OptionalRelease} is less than
\var{MandatoryRelease}, and both are 5-tuples of the same form as
\code{sys.version_info}:

\begin{verbatim}
    (PY_MAJOR_VERSION, # the 2 in 2.1.0a3; an int
     PY_MINOR_VERSION, # the 1; an int
     PY_MICRO_VERSION, # the 0; an int
     PY_RELEASE_LEVEL, # "alpha", "beta", "candidate" or "final"; string
     PY_RELEASE_SERIAL # the 3; an int
    )
\end{verbatim}

\var{OptionalRelease} records the first release in which the feature
was accepted.

In the case of a \var{MandatoryRelease} that has not yet occurred,
\var{MandatoryRelease} predicts the release in which the feature will
become part of the language.

Else \var{MandatoryRelease} records when the feature became part of
the language; in releases at or after that, modules no longer need a
future statement to use the feature in question, but may continue to
use such imports.

\var{MandatoryRelease} may also be \code{None}, meaning that a planned
feature got dropped.

Instances of class \class{_Feature} have two corresponding methods,
\method{getOptionalRelease()} and \method{getMandatoryRelease()}.

\var{CompilerFlag} is the (bitfield) flag that should be passed in the
fourth argument to the builtin function \function{compile()} to enable
the feature in dynamically compiled code.  This flag is stored in the
\member{compiler_flag} attribute on \class{_Future} instances.

No feature description will ever be deleted from \module{__future__}.
