From 0c7a0b831da57cf565654e40d535cce780bf2519 Mon Sep 17 00:00:00 2001 From: "Marshall T. Vandegrift" Date: Tue, 16 Dec 2008 12:33:27 -0500 Subject: [PATCH] Fix some str vs. unicode issues. Re-add dropped TOC.iterdescendents() method. --- src/calibre/ebooks/lit/oeb.py | 7 +++++++ src/calibre/ebooks/lit/reader.py | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/calibre/ebooks/lit/oeb.py b/src/calibre/ebooks/lit/oeb.py index 35497dfb25..a085478b5d 100644 --- a/src/calibre/ebooks/lit/oeb.py +++ b/src/calibre/ebooks/lit/oeb.py @@ -247,6 +247,7 @@ class Manifest(object): elif self.media_type.startswith('application/') \ and self.media_type.endswith('+xml'): data = etree.fromstring(data, parser=XML_PARSER) + self._data = data return data def fset(self, value): self._data = value @@ -476,6 +477,12 @@ class TOC(object): node = TOC(title, href, klass, id) self.nodes.append(node) return node + + def iterdescendents(self): + for node in self.nodes: + yield node + for child in node.iterdescendents(): + yield child def __iter__(self): for node in self.nodes: diff --git a/src/calibre/ebooks/lit/reader.py b/src/calibre/ebooks/lit/reader.py index e872cad85b..1abb4704e3 100644 --- a/src/calibre/ebooks/lit/reader.py +++ b/src/calibre/ebooks/lit/reader.py @@ -128,7 +128,7 @@ class UnBinary(object): self.dir = os.path.dirname(path) buf = StringIO() self.binary_to_text(bin, buf) - self.raw = buf.getvalue().lstrip().decode('utf-8') + self.raw = buf.getvalue().lstrip() self.escape_reserved() self._tree = None @@ -157,6 +157,9 @@ class UnBinary(object): return '/'.join(relpath) def __unicode__(self): + return self.raw.decode('utf-8') + + def __str__(self): return self.raw def tree(): @@ -837,7 +840,7 @@ class LitReader(object): content += etree.tostring(unbin.tree, encoding='ascii', pretty_print=True) else: - content += unicode(unbin) + content += str(unbin) else: internal = '/'.join(('/data', entry.internal)) content = self._litfile.get_file(internal)