validation_errors.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. '''
  2. @author: olivier.massot, 2018
  3. '''
  4. VALIDATION_ERROR_LEVELS = {10: "MINEURE", 20: "ATTENTION", 30: "ERREUR", 40: "CRITIQUE"}
  5. MINOR = 10
  6. WARNING = 20
  7. ERROR = 30
  8. CRITICAL = 40
  9. ### Vérifications générales
  10. # Fichiers présents
  11. # Fichiers lisibles
  12. # SRID
  13. #### Schéma de données
  14. # Présence des champs
  15. # Type de données
  16. # Données obligatoires
  17. # Valeurs autorisées
  18. # Emprise géographique
  19. # Type de géométrie
  20. ####
  21. # Unicité des codes
  22. # Vérification de la présence dans la base des code existants, et si exsitence, vérifie s'il s'agit du même
  23. # Vérification des cardinalités
  24. # filename, fieldname, record_id,
  25. class BaseValidationError():
  26. name = "Erreur"
  27. level = ERROR
  28. help = ""
  29. def __init__(self, message, filename="", field="", index=""):
  30. self.message = message
  31. self.filename = filename
  32. self.field = field
  33. def __repr__(self):
  34. return " - ".join(filter(None, [self.name, self.filename, self.field, self.message]))
  35. # Erreurs dans le chargement des fichiers
  36. class MissingFile(BaseValidationError):
  37. level = CRITICAL
  38. name = "Fichier Manquant"
  39. class UnreadableFile(BaseValidationError):
  40. level = CRITICAL
  41. name = "Fichier Illisible"
  42. class WrongSrid(BaseValidationError):
  43. level = CRITICAL
  44. name = "Mauvais SRID"
  45. ### Erreurs dans la structure des données
  46. class StructureValidationError(BaseValidationError):
  47. name = "Erreur dans la structure des données"
  48. level = ERROR
  49. class MissingField(BaseValidationError):
  50. name = "Champs manquant"
  51. level = CRITICAL
  52. class UnknownField(BaseValidationError):
  53. name = "Champs inconnu"
  54. level = CRITICAL
  55. class MissingValue(BaseValidationError):
  56. name = "Valeur(s) manquante(s)"
  57. level = ERROR
  58. class FieldTypeError(BaseValidationError):
  59. name = "Erreur de type"
  60. level = ERROR
  61. class TooLong(BaseValidationError):
  62. name = "Dépassement de taille"
  63. level = ERROR
  64. class FormatError(BaseValidationError):
  65. name = "Erreur de format"
  66. level = ERROR
  67. class UnauthorizedValue(BaseValidationError):
  68. name="Valeur non-autorisée"
  69. level = ERROR
  70. # Erreurs dans le contenu, erreurs métiers
  71. class TechnicalValidationError(BaseValidationError):
  72. level = ERROR
  73. class DuplicatedPk(TechnicalValidationError):
  74. name = "Doublons dans le champs"
  75. class RelationError(TechnicalValidationError):
  76. name = "Un objet lié n'existe pas"