Flatland — flatland 0.8.1 documentation

# 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