Created pythia/trunk directory.
Initial copy of Pythia v0.8 Python scripts.
Removed warning for _journal.  Fixed 'prefix.py' and
copied '.pml' and '.odb' (etc) files from Pythia v0.8,
overlaying them on top of the Python packages.  The
'hello.py' example now runs without errors.  You can
"install" this rogue Pythia by simply checking it out
and adding it to your PYTHONPATH.
svn:ignore *.pyc files.
Added egg files.
Added code to collect all of an application's defaults
into a Registry.  This could be used to dump an input
file template, for example.

The code finds all possible components using brute
force:  for each facility, it finds every .odb file with
a matching factory method, and calls it (!).  It would
be more graceful to use metadata, but design choices in
Pyre as well as limitations in Python interplay to make
such an approach difficult, if not impossible.
Initial copy of libjournal headers.
Nuked gratuitous '.icc' files.
Moved journal include files to reflect common usage:
#include "journal/xxx.h"
Initial copy of mpimodule headers.
Inlined mpimodule's C++ implementation.  Inlined
or temporarily stubbed-out libjournal's implementation.
Created an inline _mpimodule implementation which works
for CitcomS.  Also inlined more functions in journal to
avoid duplicate symbols.
Fire-up pdb and IPython when an exception occurs
(if IPython is available).
Tweaked mpi's __init__.py so that CitcomS works even
in the --disable-embedding case.  Also, be careful
to call PyImport_AppendInittab() only once.
Created an inline C++ journal interface which uses the Python version
of journal for its implementation.  It functions in a similar manner
to the _journal module's ProxyDevice in the standard version of Pythia,
except that it interfaces with the Python journal at the 'Diagnostic'
level instead of the 'Device' level.

This means the Pythia egg will have a fully functional journal,
without any native code modules or libraries whatsoever (no
_journalmodule.so or libjournal.so).
Install header files.  Added 'config.cfg' egg-metadata so that projects
which use journal (for example) can automatically get the right includes
in their CPPFLAGS.  Upgraded to setuptools 0.6c3.
Relaxed setuptools version requirement to 0.6b1.
Moved launcher/scheduler functionality into Pyre, where it belongs. 
This version is based upon Addyndum's launcher/scheduler stuff
(developed for SPECFEM) -- rather than the old, original 'Lauchers.py'
stuff in CitcomS.  I stripped out the staging stuff, at least for now:
no one really uses it, and it was only implemented for LSF.  This
version contains some experimental techniques -- it doesn't quite work,
although it might if you set PYTHONPATH in .bashrc.  I will revert it to
proven Addyndum techniques shortly.

Moved .cfg file support into Pyre, where it belongs.

Nuked C++ _mpimodule, replacing it with _mpi.pyx/_mpi.c.  This requires
minor changes to extension modules.   Application Python code remains
unchanged.

Fixed an obscure bug:  "--facility=some.module.name" now works (before
only "--facility=module" worked).  One can now also write
"--facility=some.module.name:attr.attr".  Append a period to suppress
the addition of the facility (family) name: 
"--launcher=mystuff.pyreutil.mylauncherfactory.".

~~~ Merged-in some of my better ideas from Addyndum:

For users: when there are configuration errors, instead of crashing on
the first error and printing a Python traceback, Pyre apps now print a
list of error messages -- with filenames and line numbers -- and exit
gracefully with status 1.  When a facility cannot be bound to a
component, apps now exit with a configuration error (instead of merely
logging the error and running ahead anyway with a bad configuration).

For developers:  It is no longer necessary to specify the facility name
twice.  In a component class definition, the facility name is no longer
required; and the component name can optionally be a class attribute. 
And finally, the most radical idea:  optionally, properties and
facilities may be defined at the top level, instead of nested inside
"Inventory" (e.g., "self.xxx" instead of "self.inventory.xxx").  This
really cuts down on amount of text needed to define a component.  See
LauncherMPICH for an example.

~~~ Implemented some new ideas as they occurred to me:

Added SuperScript, which enables you to write Pyre apps that work like
cvs and svn:  "script [script-options] <subscript> [subscript-options]
[ARG...]".

Added the ability to configure the automatic ultraTB tracebacks using
Pyre ('mode', 'color-scheme', 'call-pdb', and whether you want ultraTB
at all) -- although it cannot be configured from the command line.  The
'excepthook' is now set before any Application initialization takes
place, so users should almost always get an ultraTB traceback (with
pretty colors) when an exception occurs... if IPython is installed, of
course.

Journal log messages -- including the new configuration error messages
-- are now optionally colorized on capable terminals.

Laid the foundation for bash completion scripts for Pyre apps.  See
issue5.

~~~ Misc.

Cleaned-up .odb/vault layout.  Nuked 'Make.mm' files.

~~~ Notes

Pythia now depends upon Cheetah, the Python template engine.

Once I got going, I just couldn't stop :-)
Moved all pythia packages under a 'pythia' namespace package --
e.g., pythia.pyre, pythia.journal, etc. -- for three reasons:

1) Namespace pollution bad.

2) In the future, I may want to release one or more of the
subpackages as a separate project with its own verson number
and dependencies.  (E.g., opal might depend upon Django.)  At
that point in time, 'pythia' will become a true setuptools
"namespace package" (right now it is just a normal package).

3) I finally figured out how to insulate dependent projects from
all of this.  You will still be able to write "import pyre".
The subpackages will be declared as pythia "extras"... it will
all work out (I hope).
Fix-ups relating to new 'pythia' namespace:  iterate subpackages
as "extras"; new include path.