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.

Links
-----

Docs: https://flatland.readthedocs.io/

Repo / issue tracking: https://github.com/discorporate/flatland

PyPI: https://pypi.org/project/flatland/
