Skip to main content

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

  1. Campi semplici: Per ogni campo del modello, pydantic-config-generator chiede un valore, mostrando il default se disponibile
  2. Validazione: Ogni input viene validato secondo le regole del modello Pydantic
  3. Modelli annidati: Se un campo è un modello Pydantic, pydantic-config-generator chiede se includerlo (se opzionale) e poi richiede i suoi campi
  4. Gestione errori: Se un valore non è valido, viene mostrato un errore e viene richiesto di nuovo
  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydantic_config_generator-0.2.2.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydantic_config_generator-0.2.2-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file pydantic_config_generator-0.2.2.tar.gz.

File metadata

File hashes

Hashes for pydantic_config_generator-0.2.2.tar.gz
Algorithm Hash digest
SHA256 e6e27e609abf006e8a5ac4f4e63f9b2d89af923c8bbd6d5263c2cf12a05525b6
MD5 ef6517cfd93a7a70e68141020246a0c0
BLAKE2b-256 d6fc9daa57864846f5ff95439cee2ff8d8f192c0d15aae81b4308e8d7b570d3b

See more details on using hashes here.

File details

Details for the file pydantic_config_generator-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pydantic_config_generator-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0959736489bbc4f5ebcd244117907603e14fc8b5d3467cc8e676fe778f4d1ae0
MD5 104a8b92b016c2923c8fb7865ec837d2
BLAKE2b-256 3e5414268adbc117b655b2fcd9044c9c2a59cc12b33440a314d3a3e486cc84cf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page