From 0a421746c0aa1a7d8b9ea7546a5ae50caf42922c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= Date: Fri, 10 Oct 2014 10:19:47 +0200 Subject: [PATCH 1/1] Refactoring API de IndexIterator. --- HugePlinnFolder.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/HugePlinnFolder.py b/HugePlinnFolder.py index d158fdd..6f971b4 100644 --- a/HugePlinnFolder.py +++ b/HugePlinnFolder.py @@ -159,7 +159,7 @@ class HugePlinnFolder(BTreeFolder2Base, PlinnFolder) : id2posUpdate[id] = pos pos2idUpdate[pos] = id - for id in IndexIterator(pos2id, maxMovedPos, start=targetPos+1): + for id in IndexIterator(pos2id, targetPos+1, maxMovedPos): pos = pos + 1 id2posUpdate[id] = pos pos2idUpdate[pos] = id @@ -171,7 +171,7 @@ class HugePlinnFolder(BTreeFolder2Base, PlinnFolder) : else : # selection moved after the last item position pos = minMovedPos - for id in IndexIterator(pos2id, targetPos, start=minMovedPos+1) : + for id in IndexIterator(pos2id, minMovedPos+1, targetPos) : id2posUpdate[id] = pos pos2idUpdate[pos] = id pos += 1 @@ -206,24 +206,20 @@ class HugePlinnFolder(BTreeFolder2Base, PlinnFolder) : class IndexIterator : - def __init__(self, d, maxPos, start=0, length=None) : + def __init__(self, d, start, stop) : self.d = d self.pos = start - self.maxPos = maxPos - self.length = length - self.fetchedValuesCpt = 0 + self.stop = stop def __iter__(self) : return self def next(self) : try : - if self.pos > self.maxPos or \ - self.fetchedValuesCpt == self.length: + if self.pos > self.stop : raise StopIteration v = self.d[self.pos] self.pos = self.pos + 1 - self.fetchedValuesCpt = self.fetchedValuesCpt + 1 return v except KeyError : self.pos = self.pos + 1 -- 2.20.1