Dolda2000 GitWeb
/
automanga.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Better error handling for mangafox.
[automanga.git]
/
manga
/
lib.py
diff --git
a/manga/lib.py
b/manga/lib.py
index
52f75ea
..
ffea7a3
100644
(file)
--- a/
manga/lib.py
+++ b/
manga/lib.py
@@
-36,7
+36,11
@@
class pagetree(object):
`id', which should be a string that can be passed to the `byid'
function of its parent node to recover the node. Such string ID
should be more persistent than the node's numeric index in the
`id', which should be a string that can be passed to the `byid'
function of its parent node to recover the node. Such string ID
should be more persistent than the node's numeric index in the
- parent."""
+ parent.
+
+ All pagetree objects should contain an attribute `name',
+ containing some human-readable Unicode representation of the
+ pagelist."""
def idlist(self):
"""Returns a list of the IDs necessary to resolve this node
def idlist(self):
"""Returns a list of the IDs necessary to resolve this node
@@
-52,10
+56,7
@@
class pagetree(object):
class pagelist(pagetree):
"""Class representing a list of either pages, or nested
class pagelist(pagetree):
"""Class representing a list of either pages, or nested
- pagelists. Might be, for instance, a volume or a chapter.
-
- All pagelists should contain an attribute `name', containing some
- human-readable Unicode representation of the pagelist."""
+ pagelists. Might be, for instance, a volume or a chapter."""
def __len__(self):
"""Return the number of (direct) sub-nodes in this pagelist.
def __len__(self):
"""Return the number of (direct) sub-nodes in this pagelist.
@@
-115,7
+116,9
@@
class imgstream(object):
when exiting the with-scope.
All imgstreams should contain an attribute `ctype', being the
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 __enter__(self):
return self
@@
-123,6
+126,12
@@
class imgstream(object):
def __exit__(self, *exc_info):
self.close()
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()
def close(self):
"""Close this stream."""
raise NotImplementedError()
@@
-134,7
+143,10
@@
class imgstream(object):
class cursor(object):
def __init__(self, ob):
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):
def descend(self, ob):
while isinstance(ob, pagelist):
@@
-151,7
+163,7
@@
class cursor(object):
raise StopIteration()
def prev(self):
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
if i > 0:
self.cur = self.descend(n[i - 1])
return self.cur