% Complete documentation on the extended LaTeX markup used for Python
% documentation is available in ``Documenting Python'', which is part
% of the standard documentation for Python.  It may be found online
% at:
%
%     http://www.python.org/doc/current/doc/doc.html

\documentclass{manual}

\title{The httplib2 Library}

\author{Joe Gregorio}

% Please at least include a long-lived email address;
% the rest is at your discretion.
\authoraddress{
%   Organization name, if applicable \\
%   Street address, if you want to use it \\
    Email: \email{joe@bitworking.org}
}

\date{July 2, 2006}       % update before release!

\release{0.2}     % release version; this is used to define the
                  % \version macro

\makeindex          % tell \index to actually write the .idx file
\makemodindex       % If this contains a lot of module sections.


\begin{document}

\maketitle

% This makes the contents more accessible from the front page of the HTML.
%\ifhtml
%\chapter*{Front Matter\label{front}}
%\fi

%\input{copyright}

\begin{abstract}
\noindent

The \module{httplib2} module is a comprehensive HTTP client library
that handles caching, keep-alive, compression, redirects and
many kinds of authentication.


\end{abstract}

\tableofcontents

\chapter{Reference}

\input{libhttplib2.tex}

%\appendix
%\chapter{...}

%My appendix.

%The \code{\e appendix} markup need not be repeated for additional
%appendices.








%
%  The ugly "%begin{latexonly}" pseudo-environments are really just to
%  keep LaTeX2HTML quiet during the \renewcommand{} macros; they're
%  not really valuable.
%
%  If you don't want the Module Index, you can remove all of this up
%  until the second \input line.
%
%begin{latexonly}
\renewcommand{\indexname}{Module Index}
%end{latexonly}
\input{mod\jobname.ind}     % Module Index

%begin{latexonly}
\renewcommand{\indexname}{Index}
%end{latexonly}
\input{\jobname.ind}        % Index

\end{document}
