========
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
--------

.. toctree::
   :maxdepth: 2

   intro

   schema/index
   validation/index
   markup
   signals
   patterns/index
   api
   project
