\section{Standard Module \module{panel}} \declaremodule{standard}{panel} \modulesynopsis{None} \strong{Please note:} The FORMS library, to which the \code{fl}\refbimodindex{fl} module described above interfaces, is a simpler and more accessible user interface library for use with GL than the \code{panel} module (besides also being by a Dutch author). This module should be used instead of the built-in module \code{pnl}\refbimodindex{pnl} to interface with the \emph{Panel Library}. The module is too large to document here in its entirety. One interesting function: \begin{funcdesc}{defpanellist}{filename} Parses a panel description file containing S-expressions written by the \emph{Panel Editor} that accompanies the Panel Library and creates the described panels. It returns a list of panel objects. \end{funcdesc} \strong{Warning:} the Python interpreter will dump core if you don't create a GL window before calling \code{panel.mkpanel()} or \code{panel.defpanellist()}. \section{Standard Module \module{panelparser}} \declaremodule{standard}{panelparser} \modulesynopsis{None} This module defines a self-contained parser for S-expressions as output by the Panel Editor (which is written in Scheme so it can't help writing S-expressions). The relevant function is \code{panelparser.parse_file(\var{file})} which has a file object (not a filename!) as argument and returns a list of parsed S-expressions. Each S-expression is converted into a Python list, with atoms converted to Python strings and sub-expressions (recursively) to Python lists. For more details, read the module file. % XXXXJH should be funcdesc, I think \section{Built-in Module \module{pnl}} \declaremodule{builtin}{pnl} \modulesynopsis{None} This module provides access to the \emph{Panel Library} built by NASA Ames\index{NASA} (to get it, send e-mail to \code{panel-request@nas.nasa.gov}). All access to it should be done through the standard module \code{panel}\refstmodindex{panel}, which transparantly exports most functions from \code{pnl} but redefines \code{pnl.dopanel()}. \strong{Warning:} the Python interpreter will dump core if you don't create a GL window before calling \code{pnl.mkpanel()}. The module is too large to document here in its entirety.