diff -r 000000000000 -r 0d40e90630ef web/lib/django/contrib/gis/gdal/error.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/django/contrib/gis/gdal/error.py Wed Jan 20 00:34:04 2010 +0100 @@ -0,0 +1,42 @@ +""" + 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)