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.