FormEncode validates and converts nested structures.  It allows for a
declarative form of defining the validation, and decoupled processes
for filling and generating forms.

Optional dependencies are Sphinx, used to generate the docs, and
nose, to run the test suite.