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