validation_errors.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. '''
  2. @author: olivier.massot, 2018
  3. '''
  4. VALIDATION_ERROR_LEVELS = {10: "MINEURE", 20: "AVERTISSEMENT", 30: "ERREUR", 40: "CRITIQUE"}
  5. MINOR = 10
  6. WARNING = 20
  7. ERROR = 30
  8. CRITICAL = 40
  9. class BaseValidationError():
  10. order_ = 0
  11. name = "Erreur"
  12. level = ERROR
  13. help = ""
  14. def __init__(self, message, layername="", field=""):
  15. self.message = message
  16. self.layername = layername
  17. self.field = field
  18. def __repr__(self):
  19. return " - ".join(filter(None, [self.name, self.layername, self.field, self.message]))
  20. # Erreurs dans le chargement des couches
  21. class InputError(BaseValidationError):
  22. order_ = 0
  23. level = CRITICAL
  24. name = "Erreur de chargement"
  25. class MissingLayer(InputError):
  26. order_ = 1
  27. name = "Couche Manquante"
  28. class WrongSrid(InputError):
  29. order_ = 3
  30. name = "Mauvais SRID"
  31. ### Erreurs dans la structure des données
  32. class StructureError(BaseValidationError):
  33. order_ = 10
  34. name = "Erreur de structure"
  35. level = ERROR
  36. class GeomTypeError(StructureError):
  37. order_ = 12
  38. name = "Type de géométrie invalide"
  39. level = CRITICAL
  40. class BoundingBoxError(StructureError):
  41. order_ = 11
  42. name = "Coordonnées hors de la zone autorisée"
  43. class InvalidGeometry(StructureError):
  44. order_ = 13
  45. name = "Géométrie invalide"
  46. class DataError(StructureError):
  47. order_ = 14
  48. name = "Erreur de format"
  49. # Erreurs dans le contenu, erreurs métiers
  50. class TechnicalValidationError(BaseValidationError):
  51. order_ = 20
  52. level = ERROR
  53. name = "Erreur technique"
  54. class UniqueError(TechnicalValidationError):
  55. order_ = 21
  56. name = "Doublons dans le champs"
  57. class RelationError(TechnicalValidationError):
  58. order_ = 22
  59. level = CRITICAL
  60. name = "Un objet lié n'existe pas"
  61. class DuplicatedGeom(TechnicalValidationError):
  62. order_ = 23
  63. name = "Doublon graphique"
  64. class MissingItem(TechnicalValidationError):
  65. order_ = 24
  66. name = "Elément manquant"
  67. class DimensionError(TechnicalValidationError):
  68. order_ = 25
  69. name = "Elément de dimension"
  70. class PositionError(TechnicalValidationError):
  71. order_ = 26
  72. name = "Erreur de positionnement"