''' @author: olivier.massot, 2018 ''' VALIDATION_ERROR_LEVELS = {10: "MINEURE", 20: "AVERTISSEMENT", 30: "ERREUR", 40: "CRITIQUE"} MINOR = 10 WARNING = 20 ERROR = 30 CRITICAL = 40 class BaseValidationError(): order_ = 0 name = "Erreur" level = ERROR help = "" def __init__(self, message, filename="", field=""): 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 couches class InputError(BaseValidationError): order_ = 0 level = CRITICAL name = "Erreur de chargement" class MissingLayer(InputError): order_ = 1 name = "Couche Manquante" class WrongSrid(InputError): order_ = 3 name = "Mauvais SRID" ### Erreurs dans la structure des données class StructureError(BaseValidationError): order_ = 10 name = "Erreur de structure" level = ERROR class GeomTypeError(StructureError): order_ = 12 name = "Type de géométrie invalide" level = CRITICAL class BoundingBoxError(StructureError): order_ = 11 name = "Coordonnées hors de la zone autorisée" class InvalidGeometry(StructureError): order_ = 13 name = "Géométrie invalide" class DataError(StructureError): order_ = 14 name = "Erreur de format" # Erreurs dans le contenu, erreurs métiers class TechnicalValidationError(BaseValidationError): order_ = 20 level = ERROR name = "Erreur technique" class UniqueError(TechnicalValidationError): order_ = 21 name = "Doublons dans le champs" class RelationError(TechnicalValidationError): order_ = 22 level = CRITICAL name = "Un objet lié n'existe pas" class DuplicatedGeom(TechnicalValidationError): order_ = 23 name = "Doublon graphique" class MissingItem(TechnicalValidationError): order_ = 24 name = "Elément manquant" class DimensionError(TechnicalValidationError): order_ = 25 name = "Elément de dimension" class PositionError(TechnicalValidationError): order_ = 26 name = "Erreur de positionnement"