errors.py 1.1 KB

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