Metadata-Version: 2.4
Name: prettyconfi
Version: 0.1.0
Summary: Schema-driven configuration wizard for CLI and web
Project-URL: Homepage, https://github.com/safrano9999/prettyconfig
License-Expression: MIT
License-File: LICENSE
Keywords: cli,configuration,forms,schema,wizard
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.10
Provides-Extra: all
Requires-Dist: questionary>=2.0; extra == 'all'
Provides-Extra: cli
Requires-Dist: questionary>=2.0; extra == 'cli'
Description-Content-Type: text/markdown

# prettyconfig

Schema-driven configuration wizard for CLI and web.

Define your configuration flow once as TOML schemas, run it as interactive CLI prompts or export as JSON Schema for web forms.

## Install

```bash
pip install prettyconfig          # core (web-only)
pip install prettyconfig[cli]     # with interactive CLI prompts
```

## Quick Start

```python
import prettyconfig
from pathlib import Path

# Load and merge schemas
schemas = prettyconfig.load_schemas([Path("base.toml"), Path("app.toml")])
composed = prettyconfig.compose(schemas)

# Interactive CLI
runner = prettyconfig.CLIRunner(composed)
answers = runner.run()

# Save results
prettyconfig.to_env(answers, Path("output.env"))
```

## Schema Format

```toml
schema_version = 1
schema_name = "my-app"

[[fields]]
key = "APP_PORT"
type = "port"
default = 8080
label = "Application Port"
required = true

[[fields]]
key = "DB_HOST"
type = "str"
default = "localhost"
label = "Database Host"
when = { key = "USE_DB", truthy = true }
```

## License

MIT
