/django/contrib/gis/gdal/error.py
Python | 42 lines | 28 code | 0 blank | 14 comment | 0 complexity | 932a18559495b3f0fd5174245319cba7 MD5 | raw file
Possible License(s): BSD-3-Clause
- """
- This module houses the OGR & SRS Exception objects, and the
- check_err() routine which checks the status code returned by
- OGR methods.
- """
- #### OGR & SRS Exceptions ####
- class GDALException(Exception): pass
- class OGRException(Exception): pass
- class SRSException(Exception): pass
- class OGRIndexError(OGRException, KeyError):
- """
- This exception is raised when an invalid index is encountered, and has
- the 'silent_variable_feature' attribute set to true. This ensures that
- django's templates proceed to use the next lookup type gracefully when
- an Exception is raised. Fixes ticket #4740.
- """
- silent_variable_failure = True
- #### OGR error checking codes and routine ####
- # OGR Error Codes
- OGRERR_DICT = { 1 : (OGRException, 'Not enough data.'),
- 2 : (OGRException, 'Not enough memory.'),
- 3 : (OGRException, 'Unsupported geometry type.'),
- 4 : (OGRException, 'Unsupported operation.'),
- 5 : (OGRException, 'Corrupt data.'),
- 6 : (OGRException, 'OGR failure.'),
- 7 : (SRSException, 'Unsupported SRS.'),
- 8 : (OGRException, 'Invalid handle.'),
- }
- OGRERR_NONE = 0
- def check_err(code):
- "Checks the given OGRERR, and raises an exception where appropriate."
-
- if code == OGRERR_NONE:
- return
- elif code in OGRERR_DICT:
- e, msg = OGRERR_DICT[code]
- raise e(msg)
- else:
- raise OGRException('Unknown error code: "%s"' % code)