validation_errors.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. '''
  2. @author: olivier.massot, 2018
  3. '''
  4. MINOR = 10
  5. WARNING = 20
  6. ERROR = 30
  7. CRITICAL = 40
  8. _errorlvl_to_str = {10: "MINEURE", 20: "AVERTISSEMENT", 30: "ERREUR", 40: "CRITIQUE"}
  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"