% NOTES:
%
% . Search for TODOs in the text for issues that need to be
%   resolved.
%
% . This is currently in a book format.  This format makes sense for an overview
%   document, but if we prepare a journal article we'll need to switch to an article
%   format.
%

% TODO: should we stick with LaTeX documentation?  It might make sense
% to migrate to reStructured text, since that is a Python standard and
% since it can generate LaTeX.  We'll have to decide that sometime soon.

\documentclass[12pt]{article}

\usepackage{fullpage}
%\usepackage{secdot}
\usepackage[authoryear]{natbib}
\usepackage{listings}
\usepackage{url}
\usepackage[usenames]{color}

\bibpunct{[}{]}{,}{n}{}{}

\usepackage{graphicx}
%%\usepackage{helvet}
%%\usepackage{courier}
%%\usepackage{makeidx}
%%\usepackage{multicol}
%%\usepackage{mathptmx}
%%%\usepackage{type1cm}
%%%\usepackage[bottom]{footmisc}
%%%\usepackage{footmisc}
%%%\usepackage{amsfonts,amsmath,graphicx,subfigure}

\include{macros}



\begin{document}

\title{The PyUtilib Component Architecture}

\author{William E.\ Hart\footnote{Sandia National Laboratories, 
Discrete Math and Complex Systems Department, 
PO Box 5800, Albuquerque, NM 87185;
{\tt wehart@sandia.gov}}
\and
John Siirola\footnote{Sandia National Laboratories,
Exploratory Simulation Technologies Department, 
PO Box 5800, Albuquerque, NM 87185;
{\tt jdsiiro@sandia.gov}}
}

\date{\today}

\maketitle

\begin{abstract}
We describe the PyUtilib Component Architecture (\pca), which has
been substantially revised for the PyUtilib 4.0 release. The design
of \pcasp is inspired by the Trac component architecture, and it
supports advanced features like non-singleton components, namespaces
and caching of component interactions. The \pcasp includes an
independent, self-contained framework core that can be easily
integrated into other applications, as well as a variety of extension
packages with commonly used components.
\end{abstract}


\lstset{language=Python}
\definecolor{light-gray}{gray}{0.9}
\lstset{backgroundcolor=\color{light-gray}}
\lstset{aboveskip=1em,belowskip=1em,showspaces=false,showstringspaces=false}

\newpage
\tableofcontents
\newpage

\input{pca-intro}
\input{pca-core}
\input{pca-extensions}
\input{pca-disc}

\section*{Acknowledgements} 

We thank Jean-Paul Watson for feedback on the design of the PyUtilib
Component Architecture. This work was supported by the Laboratory
Directed Research and Development program at Sandia National
Laboratories. Sandia National Laboratories is a multi-program
laboratory operated by Sandia Corporation, a wholly owned subsidiary
of Lockheed Martin company, for the U.S. Department of Energy's
National Nuclear Security Administration under contract DE-AC04-94AL85000.


%\appendix

%\include{pca-deploy}

\bibliographystyle{siam}
\bibliography{coopr}

\end{document}

