Interactive configuration prompt for Pydantic models
Project description
pydantic-config-generator
pydantic-config-generator è una libreria Python che fornisce prompt interattivi per la configurazione di modelli Pydantic. Permette di creare interfacce CLI interattive per raccogliere e validare dati secondo i tuoi modelli Pydantic.
Caratteristiche
- 🎯 Validazione automatica: Usa la validazione di Pydantic per garantire dati corretti
- 🔄 Supporto per modelli annidati: Gestisce configurazioni complesse con modelli Pydantic annidati
- ⚡ Facile da usare: Basta passare il tuo modello Pydantic e pydantic-config-generator fa il resto
- 🛡️ Type-safe: Sfrutta il sistema di tipi di Pydantic
- 💾 Salvataggio in file: Salva le configurazioni in formato INI per un uso successivo
Installazione
pip install pydantic-config-generator
Utilizzo
Esempio Base
from pydantic import BaseModel
from pydantic_config_generator import run
class ExampleConfig(BaseModel):
name: str = ''
surname: str
age: int
is_student: bool = True
# Avvia il prompt interattivo
config = run(ExampleConfig)
Esempio con Modelli Annidati
from pydantic import BaseModel
from pydantic_config_generator import run
class ExampleSubConfig(BaseModel):
name: str
surname: str
age: int
class ExampleConfig(BaseModel):
name: str = ''
surname: str
age: int
is_student: bool = True
teacher: ExampleSubConfig = None
config = run(ExampleConfig)
Il sistema ti chiederà di inserire i valori per ogni campo, mostrando i valori di default tra parentesi quadre. I campi obbligatori devono essere compilati, mentre quelli opzionali possono essere saltati.
Salvare la Configurazione in un File
Dopo aver raccolto la configurazione tramite run(), puoi salvarla in un file INI usando la funzione write():
from pydantic import BaseModel
from pydantic_config_generator import run, write
class ExampleConfig(BaseModel):
name: str = ''
surname: str
age: int
is_student: bool = True
# Raccogli la configurazione
config = run(ExampleConfig)
# Salva in un file INI
write(config, 'config.ini')
La funzione write() salva la configurazione in formato INI. Se il file esiste già, ti chiederà conferma prima di sovrascriverlo. I modelli annidati vengono salvati come sezioni separate nel file INI.
Come Funziona
- Campi semplici: Per ogni campo del modello, pydantic-config-generator chiede un valore, mostrando il default se disponibile
- Validazione: Ogni input viene validato secondo le regole del modello Pydantic
- Modelli annidati: Se un campo è un modello Pydantic, pydantic-config-generator chiede se includerlo (se opzionale) e poi richiede i suoi campi
- Gestione errori: Se un valore non è valido, viene mostrato un errore e viene richiesto di nuovo
- Salvataggio in file: La funzione
write()salva la configurazione in formato INI, dove ogni campo del modello diventa una sezione con le sue proprietà come opzioni. I modelli annidati vengono salvati come sezioni separate
Requisiti
- Python >= 3.7
- pydantic >= 1.0, < 2.0
Licenza
MIT License
Contribuire
I contributi sono benvenuti! Sentiti libero di aprire issue o pull request.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pydantic_config_generator-0.2.2.tar.gz.
File metadata
- Download URL: pydantic_config_generator-0.2.2.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6e27e609abf006e8a5ac4f4e63f9b2d89af923c8bbd6d5263c2cf12a05525b6
|
|
| MD5 |
ef6517cfd93a7a70e68141020246a0c0
|
|
| BLAKE2b-256 |
d6fc9daa57864846f5ff95439cee2ff8d8f192c0d15aae81b4308e8d7b570d3b
|
File details
Details for the file pydantic_config_generator-0.2.2-py3-none-any.whl.
File metadata
- Download URL: pydantic_config_generator-0.2.2-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0959736489bbc4f5ebcd244117907603e14fc8b5d3467cc8e676fe778f4d1ae0
|
|
| MD5 |
104a8b92b016c2923c8fb7865ec837d2
|
|
| BLAKE2b-256 |
3e5414268adbc117b655b2fcd9044c9c2a59cc12b33440a314d3a3e486cc84cf
|