errors.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from functools import wraps
  2. from grass.exceptions import GrassError
  3. from grass.pygrass.messages import get_msgr
  4. import grass.lib.gis as libgis
  5. def must_be_open(method):
  6. @wraps(method)
  7. def wrapper(self, *args, **kargs):
  8. if self.is_open():
  9. return method(self, *args, **kargs)
  10. else:
  11. msgr = get_msgr()
  12. msgr.warning(_("The map is close!"))
  13. return wrapper
  14. def mapinfo_must_be_set(method):
  15. @wraps(method)
  16. def wrapper(self, *args, **kargs):
  17. if self.c_mapinfo:
  18. return method(self, *args, **kargs)
  19. else:
  20. raise GrassError(
  21. _("The self.c_mapinfo pointer must be " "correctly initiated")
  22. )
  23. return wrapper
  24. def must_be_in_current_mapset(method):
  25. @wraps(method)
  26. def wrapper(self, *args, **kargs):
  27. if self.mapset == libgis.G_mapset().decode():
  28. return method(self, *args, **kargs)
  29. else:
  30. raise GrassError(
  31. _("Map <{}> not found in current mapset").format(self.name)
  32. )
  33. return wrapper