Metadata-Version: 2.4
Name: wizdantic
Version: 0.1.2
Summary: Collect values for a pydantic model via a wizard
Keywords: pydantic,wizard,cli,interactive,prompt,terminal,form,validation
Author: Tucker Beck
Author-email: Tucker Beck <tucker.beck@gmail.com>
License-File: LICENSE.md
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Terminals
Classifier: Typing :: Typed
Requires-Dist: inflection>=0.5.1
Requires-Dist: prompt-toolkit>=3.0
Requires-Dist: py-buzz>=8.1.1
Requires-Dist: pydantic>=2.0
Requires-Dist: rich>=13.0
Requires-Dist: snick>=3.1.0
Requires-Dist: auto-name-enum>=4.1.0 ; extra == 'demo'
Requires-Dist: typer>=0.15 ; extra == 'demo'
Requires-Python: >=3.12
Project-URL: homepage, https://github.com/dusktreader/wizdantic
Project-URL: repository, https://github.com/dusktreader/wizdantic
Project-URL: documentation, https://dusktreader.github.io/wizdantic
Project-URL: source, https://github.com/dusktreader/wizdantic
Project-URL: changelog, https://github.com/dusktreader/wizdantic/blob/main/CHANGELOG.md
Provides-Extra: demo
Description-Content-Type: text/markdown

[![Latest Version](https://img.shields.io/pypi/v/wizdantic?label=pypi-version&logo=python&style=plastic)](https://pypi.org/project/wizdantic/)
[![Python Versions](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fdusktreader%2Fwizdantic%2Fmain%2Fpyproject.toml&style=plastic&logo=python&label=python-versions)](https://www.python.org/)
[![Build Status](https://github.com/dusktreader/wizdantic/actions/workflows/main.yml/badge.svg)](https://github.com/dusktreader/wizdantic/actions/workflows/main.yml)
[![Documentation Status](https://github.com/dusktreader/wizdantic/actions/workflows/docs.yml/badge.svg)](https://dusktreader.github.io/wizdantic/)

# wizdantic

![wizdantic](https://raw.githubusercontent.com/dusktreader/wizdantic/main/docs/source/images/wizdantic-logo.png)

Conjure populated Pydantic models from thin air with an interactive terminal
wizard.

## Super-quick start

Requires Python 3.12+.

```bash
pip install wizdantic
```

## Usage

Define a Pydantic model. Call `run_wizard`. That's it.

```python
from pydantic import BaseModel, Field
from wizdantic import run_wizard

class Spellbook(BaseModel):
    name: str = Field(description="Spellbook title")
    page_count: int = Field(description="Number of pages", default=300)
    ink_weight_kg: float = Field(description="Weight of enchanted ink in kilograms", default=0.4)
    cursed: bool = Field(description="Bound with a curse", default=False)

book = run_wizard(Spellbook, title="Register a Spellbook")
```

The wizard walks the user through each field, validates input inline, insists on
required values, pre-fills defaults, and returns a fully constructed model
instance.

## Documentation

Full documentation at [dusktreader.github.io/wizdantic](https://dusktreader.github.io/wizdantic/).
