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/