Metadata-Version: 2.1
Name: formaldict
Version: 1.0.7
Summary: Formal structured dictionaries parsed from a schema
Home-page: https://github.com/Opus10/formaldict
License: BSD-3-Clause
Author: Wes Kendall
Requires-Python: >=3.8.0,<4
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Dist: kmatch (>=0.3.0)
Requires-Dist: prompt-toolkit (>=3.0.2)
Requires-Dist: python-dateutil (>=2.8.1)
Project-URL: Documentation, https://formaldict.readthedocs.io
Project-URL: Repository, https://github.com/Opus10/formaldict
Description-Content-Type: text/markdown

# formaldict

`formaldict` provides the constructs for parsing structured dictionaries that adhere to a schema. Along with a simple and flexible schema definition to parse and validate dictionaries, `formaldict` is integrated with [python-prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit). This integration allows users to easily construct flows for command line interfaces (CLIs) when parsing structured user input.

Below is an example user input flow constructed with a `formaldict` schema used by [git-tidy](https://github.com/Opus10/git-tidy):

![Usage](https://raw.githubusercontent.com/Opus10/formaldict/main/docs/static/prompt.gif)

Check out the [docs](https://formaldict.readthedocs.io/) for a tutorial on how to use `formaldict` as the backbone for parsing structured input in your library.

## Documentation

[View the formaldict docs here](https://formaldict.readthedocs.io/).

## Installation

Install formaldict with:

    pip3 install formaldict

## Contributing Guide

For information on setting up formaldict for development and contributing changes, view [CONTRIBUTING.md](CONTRIBUTING.md).

## Compatibility

`formaldict` is compatible with Python 3.8 - 3.12.

## Creators

- @wesleykendall (Wes Kendall)

