You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/sci-libs/gdal/files/gdal-1.11.1-swig-3.0.3.patch

162 lines
4.2 KiB

svn diff -c 28298 https://svn.osgeo.org/gdal/branches/1.11
r28298 | rouault | 2015-01-06 10:03:37 +0100 (Di, 06 Jan 2015) | 1 line
Python bindings: fix processing error of ogr_python.i with SWIG 3 (#5795)
http://trac.osgeo.org/gdal/ticket/5795#comment:3
https://bugs.gentoo.org/534168
Index: gdal/swig/python/osgeo/ogr.py
===================================================================
--- gdal/swig/python/osgeo/ogr.py (revision 28297)
+++ gdal/swig/python/osgeo/ogr.py (revision 28298)
@@ -2025,12 +2025,12 @@
"""Returns the number of features in the layer"""
return self.GetFeatureCount()
-
-
+ # To avoid __len__ being called when testing boolean value
+ # which can have side effects (#4758)
def __nonzero__(self):
return True
-
+ # For Python 3 compat
__bool__ = __nonzero__
def __getitem__(self, value):
@@ -2041,9 +2041,9 @@
import sys
output = []
if value.stop == sys.maxint:
-
-
-
+ #for an unending slice, sys.maxint is used
+ #We need to stop before that or GDAL will write an
+ ##error to stdout
stop = len(self) - 1
else:
stop = value.stop
@@ -2944,8 +2944,8 @@
def __copy__(self):
return self.Clone()
-
-
+ # This makes it possible to fetch fields in the form "feature.area".
+ # This has some risk of name collisions.
def __getattr__(self, key):
"""Returns the values of fields by the given name"""
if key == 'this':
@@ -2961,8 +2961,8 @@
else:
return self.GetField(idx)
-
-
+ # This makes it possible to set fields in the form "feature.area".
+ # This has some risk of name collisions.
def __setattr__(self, key, value):
"""Set the values of fields by the given name"""
if key == 'this' or key == 'thisown':
@@ -2978,7 +2978,7 @@
else:
self.__dict__[key] = value
-
+ # This makes it possible to fetch fields in the form "feature['area']".
def __getitem__(self, key):
"""Returns the values of fields by the given name / field_index"""
if isinstance(key, str):
@@ -2993,7 +2993,7 @@
else:
return self.GetField(fld_index)
-
+ # This makes it possible to set fields in the form "feature['area'] = 123".
def __setitem__(self, key, value):
"""Returns the value of a field by field name / index"""
if isinstance(key, str):
@@ -3026,9 +3026,9 @@
return self.GetFieldAsIntegerList(fld_index)
if fld_type == OFTRealList:
return self.GetFieldAsDoubleList(fld_index)
-
-
-
+ ## if fld_type == OFTDateTime or fld_type == OFTDate or fld_type == OFTTime:
+ # return self.GetFieldAsDate(fld_index)
+ # default to returning as a string. Should we add more types?
return self.GetFieldAsString(fld_index)
def SetField2(self, fld_index, value):
Index: gdal/swig/include/python/ogr_python.i
===================================================================
--- gdal/swig/include/python/ogr_python.i (revision 28297)
+++ gdal/swig/include/python/ogr_python.i (revision 28298)
@@ -111,7 +111,7 @@
}
%extend OGRLayerShadow {
- %pythoncode {
+ %pythoncode %{
def Reference(self):
"For backwards compatibility only."
pass
@@ -183,12 +183,12 @@
return output
schema = property(schema)
- }
+ %}
}
%extend OGRFeatureShadow {
- %pythoncode {
+ %pythoncode %{
def Reference(self):
pass
@@ -383,12 +383,12 @@
return output
-}
+%}
}
%extend OGRGeometryShadow {
-%pythoncode {
+%pythoncode %{
def Destroy(self):
self.__swig_destroy__(self)
self.__del__()
@@ -416,8 +416,8 @@
return subgeom
else:
raise StopIteration
+%}
}
-}
%extend OGRFieldDefnShadow {
@@ -449,13 +449,13 @@
}
%extend OGRFieldDefnShadow {
-%pythoncode {
+%pythoncode %{
def Destroy(self):
"Once called, self has effectively been destroyed. Do not access. For backwards compatiblity only"
_ogr.delete_FieldDefn( self )
self.thisown = 0
+%}
}
-}
%import typemaps_python.i