Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--sugar_network/client.py16
l---------sugar_network/sweets/lib/zeroinstall1
3 files changed, 13 insertions, 9 deletions
diff --git a/.gitignore b/.gitignore
index 624b0ba..f3b66c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,4 @@
.*
*.tar.*
doc/build
-active_document
-restful_document
-sugar_network_server
-sugar_stats_server
tmp
-sugar_network/sweets/lib/zeroinstall
diff --git a/sugar_network/client.py b/sugar_network/client.py
index e3bc5df..a705644 100644
--- a/sugar_network/client.py
+++ b/sugar_network/client.py
@@ -117,7 +117,10 @@ class Query(object):
def __iter__(self):
while self.offset + 1 < self.total:
self.offset += 1
- yield self.get(self.offset)
+ obj = self.get(self.offset)
+ if obj is None:
+ break
+ yield obj
def filter(self, query=None, **filters):
"""Change query parameters.
@@ -149,11 +152,16 @@ class Query(object):
(offset >= self._total):
return default
page = offset / _PAGE_SIZE
+ offset -= page * _PAGE_SIZE
if page not in self._pages:
self._fetch_page(page)
- if offset >= self._total:
- return default
- return self._pages[page][offset - page * _PAGE_SIZE]
+ if offset >= len(self._pages[page]):
+ total = page + len(self._pages[page])
+ _logger.warning('Miscalculated total number, %s instead of %s',
+ total, self._total)
+ self._total = total
+ return default
+ return self._pages[page][offset]
def __getitem__(self, offset):
"""Get object by offset.
diff --git a/sugar_network/sweets/lib/zeroinstall b/sugar_network/sweets/lib/zeroinstall
new file mode 120000
index 0000000..b434384
--- /dev/null
+++ b/sugar_network/sweets/lib/zeroinstall
@@ -0,0 +1 @@
+zeroinstall-injector/zeroinstall/ \ No newline at end of file