when exiting the with-scope.
All imgstreams should contain an attribute `ctype', being the
- Content-Type of the image being read by the stream."""
+ Content-Type of the image being read by the stream, and `clen`,
+ being either an int describing the total number of bytes in the
+ stream, or None if the value is not known in advance."""
def __enter__(self):
return self
def __exit__(self, *exc_info):
self.close()
+ def fileno(self):
+ """If reading the imgstream may block, fileno() should return
+ a file descriptor that can be polled. If fileno() returns
+ None, that should mean that reading will not block."""
+ return None
+
def close(self):
"""Close this stream."""
raise NotImplementedError()
class cursor(object):
def __init__(self, ob):
- self.cur = self.descend(ob)
+ if isinstance(ob, cursor):
+ self.cur = ob.cur
+ else:
+ self.cur = self.descend(ob)
def descend(self, ob):
while isinstance(ob, pagelist):
raise StopIteration()
def prev(self):
- for n, i in reversed(self.cur,stack):
+ for n, i in reversed(self.cur.stack):
if i > 0:
self.cur = self.descend(n[i - 1])
return self.cur