X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=manga%2Flib.py;h=d901e9fcd9d1e9f8b449dd7360108ea4caa26432;hb=9948db89162b12bd94971dbad4b0f765dd1b47f5;hp=52f75ea9f5e3e60630be362f2519c1d4921e91fd;hpb=46b3b90eef4007f3f4e871afd4854f7a06c8bfc8;p=automanga.git diff --git a/manga/lib.py b/manga/lib.py index 52f75ea..d901e9f 100644 --- a/manga/lib.py +++ b/manga/lib.py @@ -115,7 +115,9 @@ class imgstream(object): 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 @@ -123,6 +125,12 @@ class imgstream(object): 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() @@ -134,7 +142,10 @@ class imgstream(object): 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):