Voluptuous est un module de validation de données visant principalement les formats JSON et YAML. Ses trois buts sont :
- La simplicité
- Le support de structures complexes
- La génération de messages d’erreur utiles
Voici deux exemples venant du dépôt de Voluptuous.
La premier met en avant l’écriture claire et simple de requête de validation :
from voluptuous import Required, All, Length, Range
schema_basique = Schema({
'q': str,
'per_page': int,
'page': int,
})
schema = Schema({
Required('q'): All(str, Length(min=1)),
Required('per_page', default=5): All(int, Range(min=1, max=20)),'page': All(int, Range(min=0)),
})
Le second exemple, lui, présente les erreurs spécifiques de la librairie :
from voluptuous import MultipleInvalid, Invalid
try:
schema({})
raise AssertionError('MultipleInvalid not raised')
except MultipleInvalid as e:
exc = e
print(str(exc) == "required key not provided @ data['q']")#True