''' @author: olivier.massot, 2018 ''' VALIDATION_ERROR_LEVELS = {10: "MINEURE", 20: "ATTENTION", 30: "ERREUR", 40: "CRITIQUE"} MINOR = 10 WARNING = 20 ERROR = 30 CRITICAL = 40 ### Vérifications générales # Fichiers présents # Fichiers lisibles # SRID #### Schéma de données # Présence des champs # Type de données # Données obligatoires # Valeurs autorisées # Emprise géographique # Type de géométrie #### # Unicité des codes # Vérification de la présence dans la base des code existants, et si exsitence, vérifie s'il s'agit du même # Vérification des cardinalités # filename, fieldname, record_id, class BaseValidationError(): name = "Erreur" level = ERROR help = "" def __init__(self, message, filename="", field="", index=""): self.message = message self.filename = filename self.field = field def __repr__(self): return " - ".join(filter(None, [self.name, self.filename, self.field, self.message])) # Erreurs dans le chargement des fichiers class MissingFile(BaseValidationError): level = CRITICAL name = "Fichier Manquant" class UnreadableFile(BaseValidationError): level = CRITICAL name = "Fichier Illisible" class WrongSrid(BaseValidationError): level = CRITICAL name = "Mauvais SRID" ### Erreurs dans la structure des données class StructureValidationError(BaseValidationError): name = "Erreur dans la structure des données" level = ERROR class MissingField(BaseValidationError): name = "Champs manquant" level = CRITICAL class UnknownField(BaseValidationError): name = "Champs inconnu" level = CRITICAL class MissingValue(BaseValidationError): name = "Valeur(s) manquante(s)" level = ERROR class FieldTypeError(BaseValidationError): name = "Erreur de type" level = ERROR class TooLong(BaseValidationError): name = "Dépassement de taille" level = ERROR class FormatError(BaseValidationError): name = "Erreur de format" level = ERROR class UnauthorizedValue(BaseValidationError): name="Valeur non-autorisée" level = ERROR # Erreurs dans le contenu, erreurs métiers class TechnicalValidationError(BaseValidationError): level = ERROR class DuplicatedPk(TechnicalValidationError): name = "Doublons dans le champs" class RelationError(TechnicalValidationError): name = "Un objet lié n'existe pas"