\section{Standard module \sectcode{xdrlib}}
\label{module-xdrlib}
\stmodindex{xdrlib}
\index{XDR}

\renewcommand{\indexsubitem}{(in module xdrlib)}


The \code{xdrlib} module supports the External Data Representation
Standard as described in RFC 1014, written by Sun Microsystems,
Inc. June 1987.  It supports most of the data types described in the
RFC, although some, most notably \code{float} and \code{double} are
only supported on those operating systems that provide an XDR
library.

The \code{xdrlib} module defines two classes, one for packing
variables into XDR representation, and another for unpacking from XDR
representation.  There are also two exception classes.


\subsection{Packer Objects}

\code{Packer} is the class for packing data into XDR representation.
The \code{Packer} class is instantiated with no arguments.

\begin{funcdesc}{get_buffer}{}
Returns the current pack buffer as a string.
\end{funcdesc}

\begin{funcdesc}{reset}{}
Resets the pack buffer to the empty string.
\end{funcdesc}

In general, you can pack any of the most common XDR data types by
calling the appropriate \code{pack_\var{type}} method.  Each method
takes a single argument, the value to pack.  The following simple data
type packing methods are supported: \code{pack_uint}, \code{pack_int},
\code{pack_enum}, \code{pack_bool}, \code{pack_uhyper},
and \code{pack_hyper}.

The following methods pack floating point numbers, however they
require C library support.  Without the optional C built-in module,
both of these methods will raise an \code{xdrlib.ConversionError}
exception.  See the note at the end of this chapter for details.

\begin{funcdesc}{pack_float}{value}
Packs the single-precision floating point number \var{value}.
\end{funcdesc}

\begin{funcdesc}{pack_double}{value}
Packs the double-precision floating point number \var{value}.
\end{funcdesc}

The following methods support packing strings, bytes, and opaque data:

\begin{funcdesc}{pack_fstring}{n\, s}
Packs a fixed length string, \var{s}.  \var{n} is the length of the
string but it is \emph{not} packed into the data buffer.  The string
is padded with null bytes if necessary to guaranteed 4 byte alignment.
\end{funcdesc}

\begin{funcdesc}{pack_fopaque}{n\, data}
Packs a fixed length opaque data stream, similarly to
\code{pack_fstring}.
\end{funcdesc}

\begin{funcdesc}{pack_string}{s}
Packs a variable length string, \var{s}.  The length of the string is
first packed as an unsigned integer, then the string data is packed
with \code{pack_fstring}.
\end{funcdesc}

\begin{funcdesc}{pack_opaque}{data}
Packs a variable length opaque data string, similarly to
\code{pack_string}.
\end{funcdesc}

\begin{funcdesc}{pack_bytes}{bytes}
Packs a variable length byte stream, similarly to \code{pack_string}.
\end{funcdesc}

The following methods support packing arrays and lists:

\begin{funcdesc}{pack_list}{list\, pack_item}
Packs a \var{list} of homogeneous items.  This method is useful for
lists with an indeterminate size; i.e. the size is not available until
the entire list has been walked.  For each item in the list, an
unsigned integer \code{1} is packed first, followed by the data value
from the list.  \var{pack_item} is the function that is called to pack
the individual item.  At the end of the list, an unsigned integer
\code{0} is packed.
\end{funcdesc}

\begin{funcdesc}{pack_farray}{n\, array\, pack_item}
Packs a fixed length list (\var{array}) of homogeneous items.  \var{n}
is the length of the list; it is \emph{not} packed into the buffer,
but a \code{ValueError} exception is raised if \code{len(array)} is not
equal to \var{n}.  As above, \var{pack_item} is the function used to
pack each element.
\end{funcdesc}

\begin{funcdesc}{pack_array}{list\, pack_item}
Packs a variable length \var{list} of homogeneous items.  First, the
length of the list is packed as an unsigned integer, then each element
is packed as in \code{pack_farray} above.
\end{funcdesc}

\subsection{Unpacker Objects}

\code{Unpacker} is the complementary class which unpacks XDR data
values from a string buffer, and has the following methods:

\begin{funcdesc}{__init__}{data}
Instantiates an \code{Unpacker} object with the string buffer
\var{data}.
\end{funcdesc}

\begin{funcdesc}{reset}{data}
Resets the string buffer with the given \var{data}.
\end{funcdesc}

\begin{funcdesc}{get_position}{}
Returns the current unpack position in the data buffer.
\end{funcdesc}

\begin{funcdesc}{set_position}{position}
Sets the data buffer unpack position to \var{position}.  You should be
careful about using \code{get_position()} and \code{set_position()}.
\end{funcdesc}

\begin{funcdesc}{get_buffer}{}
Returns the current unpack data buffer as a string.
\end{funcdesc}

\begin{funcdesc}{done}{}
Indicates unpack completion.  Raises an \code{xdrlib.Error} exception
if all of the data has not been unpacked.
\end{funcdesc}

In addition, every data type that can be packed with a \code{Packer},
can be unpacked with an \code{Unpacker}.  Unpacking methods are of the
form \code{unpack_\var{type}}, and take no arguments.  They return the
unpacked object.  The same caveats apply for \code{unpack_float} and
\code{unpack_double} as above.

\begin{funcdesc}{unpack_float}{}
Unpacks a single-precision floating point number.
\end{funcdesc}

\begin{funcdesc}{unpack_double}{}
Unpacks a double-precision floating point number, similarly to
\code{unpack_float}.
\end{funcdesc}

In addition, the following methods unpack strings, bytes, and opaque
data:

\begin{funcdesc}{unpack_fstring}{n}
Unpacks and returns a fixed length string.  \var{n} is the number of
characters expected.  Padding with null bytes to guaranteed 4 byte
alignment is assumed.
\end{funcdesc}

\begin{funcdesc}{unpack_fopaque}{n}
Unpacks and returns a fixed length opaque data stream, similarly to
\code{unpack_fstring}.
\end{funcdesc}

\begin{funcdesc}{unpack_string}{}
Unpacks and returns a variable length string.  The length of the
string is first unpacked as an unsigned integer, then the string data
is unpacked with \code{unpack_fstring}.
\end{funcdesc}

\begin{funcdesc}{unpack_opaque}{}
Unpacks and returns a variable length opaque data string, similarly to
\code{unpack_string}.
\end{funcdesc}

\begin{funcdesc}{unpack_bytes}{}
Unpacks and returns a variable length byte stream, similarly to
\code{unpack_string}.
\end{funcdesc}

The following methods support unpacking arrays and lists:

\begin{funcdesc}{unpack_list}{unpack_item}
Unpacks and returns a list of homogeneous items.  The list is unpacked
one element at a time
by first unpacking an unsigned integer flag.  If the flag is \code{1},
then the item is unpacked and appended to the list.  A flag of
\code{0} indicates the end of the list.  \var{unpack_item} is the
function that is called to unpack the items.
\end{funcdesc}

\begin{funcdesc}{unpack_farray}{n\, unpack_item}
Unpacks and returns (as a list) a fixed length array of homogeneous
items.  \var{n} is number of list elements to expect in the buffer.
As above, \var{unpack_item} is the function used to unpack each element.
\end{funcdesc}

\begin{funcdesc}{unpack_array}{unpack_item}
Unpacks and returns a variable length \var{list} of homogeneous items.
First, the length of the list is unpacked as an unsigned integer, then
each element is unpacked as in \code{unpack_farray} above.
\end{funcdesc}

\subsection{Exceptions}
\nodename{Exceptions in xdrlib module}

Exceptions in this module are coded as class instances:

\begin{excdesc}{Error}
The base exception class.  \code{Error} has a single public data
member \code{msg} containing the description of the error.
\end{excdesc}

\begin{excdesc}{ConversionError}
Class derived from \code{Error}.  Contains no additional instance
variables.
\end{excdesc}

Here is an example of how you would catch one of these exceptions:

\bcode\begin{verbatim}
import xdrlib
p = xdrlib.Packer()
try:
    p.pack_double(8.01)
except xdrlib.ConversionError, instance:
    print 'packing the double failed:', instance.msg
\end{verbatim}\ecode
%
\subsection{Supporting Floating Point Data}

Packing and unpacking floating point data,
i.e. \code{Packer.pack_float}, \code{Packer.pack_double},
\code{Unpacker.unpack_float}, and \code{Unpacker.unpack_double}, are
only supported with the helper built-in \code{_xdr} module, which
relies on your operating system having the appropriate XDR library
routines.

If you have built the Python interpeter with the \code{_xdr} module,
or have built the \code{_xdr} module as a shared library,
\code{xdrlib} will use these to pack and unpack floating point
numbers.  Otherwise, using these routines will raise a
\code{ConversionError} exception.

See the Python installation instructions for details on building the
\code{_xdr} module.
