Flatland
********

Flatland maps between rich, structured Python application data and the
string-oriented flat namespace of web forms, key/value stores, text
files and user input.  Flatland provides a schema-driven mapping
toolkit with optional data validation.

Flatland is great for:

   * Collecting, validating, re-displaying and processing HTML form
     data

   * Dealing with rich structures (lists, dicts, lists of dicts,
     etc.) in web data

   * Validating JSON, YAML, and other structured formats

   * Associating arbitrary Python types with JSON, .ini, or sys.argv
     members that would otherwise deserialize as simple strings.

   * Reusing a single data schema for HTML, JSON APIs, RPC, …

The core of the Flatland toolkit is a flexible and extensible
declarative schema system representing many data types and structures.

A validation system and library of schema-aware validators is also
provided, with rich i18n capabilities for use in HTML, network APIs
and other environments where user-facing messaging is required.


Contents
========

* Overview

  * Philosophy

  * Introduction

* Defining and Using Forms

  * Introduction

  * Element Types

  * Advanced Usage

* Validation

  * Basic Validation

  * Custom Validation

  * Validator API

  * Included Validators

* HTML Forms and Markup

  * Markup Generation

  * Controlling Attribute Transformations

  * Transformations

  * Generator

  * Genshi Directives

* Signals

* Patterns

  * Widgets using Templates and Schema Properties

* API

* The Flatland Project

  * License

  * Authors & Contributors

  * History

  * Documentation Todo List
