summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Dunck <jdunck@gmail.com>2007-07-08 07:06:53 +0000
committerJeremy Dunck <jdunck@gmail.com>2007-07-08 07:06:53 +0000
commitf7a23a103a3014794c39da4d466cd3abacf60894 (patch)
tree116e175926f89bfb77c561fd7c0b4b16f6f51cb2
parent5f7c6f758b212957df15cf7e197681f59dca3858 (diff)
gis: Switched back to non-generator __getitem__, since even specific-item index returned generator.
git-svn-id: http://code.djangoproject.com/svn/django/branches/gis@5633 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/contrib/gis/gdal/Layer.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/django/contrib/gis/gdal/Layer.py b/django/contrib/gis/gdal/Layer.py
index 6e5ccb201b..77bc9191d8 100644
--- a/django/contrib/gis/gdal/Layer.py
+++ b/django/contrib/gis/gdal/Layer.py
@@ -48,19 +48,17 @@ class Layer(object):
index = end - index
if index < 0 or index >= self.num_feat:
raise IndexError, 'index out of range'
- yield make_feature(index)
+ return make_feature(index)
else:
# A slice was given
start, stop, stride = index.indices(end)
- for offset in xrange(start,stop,stride):
- yield make_feature(offset)
+ return [make_feature(offset) for offset in range(start,stop,stride)]
def __iter__(self):
"Iterates over each Feature in the Layer."
- # Resetting the Layer before beginning iteration
- lgdal.OGR_L_ResetReading(self._layer)
-
- return self.__getitem__(slice(self.num_feat))
+ #TODO: is OGR's GetNextFeature faster here?
+ for i in range(self.num_feat):
+ yield self.__getitem__(i)
def __len__(self):
"The length is the number of features."