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.