"""Returns a list of the IDs necessary to resolve this node
from the root node."""
if len(self.stack) == 0:
- raise Exception("Cannot get ID list on root node.")
- return [n.id for n, i in self.stack[1:]] + [self.id]
+ return []
+ return self.stack[-1][0].idlist() + [self.id]
def byidlist(self, idlist):
if len(idlist) == 0:
else:
self.cur = self.descend(ob)
- def descend(self, ob):
+ def descend(self, ob, last=False):
while isinstance(ob, pagelist):
- ob = ob[0]
+ ob = ob[len(ob) - 1 if last else 0]
if not isinstance(ob, page):
raise TypeError("object in page tree was unexpectedly not a pagetree")
return ob
def prev(self):
for n, i in reversed(self.cur.stack):
if i > 0:
- self.cur = self.descend(n[i - 1])
+ self.cur = self.descend(n[i - 1], True)
return self.cur
raise StopIteration()