From 8dd35bc55ca3835bc66839e7d790cad5da99605f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 15 Feb 2010 08:38:37 -0700 Subject: [PATCH] Speed up parsing of OPF files --- src/calibre/ebooks/metadata/opf2.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/calibre/ebooks/metadata/opf2.py b/src/calibre/ebooks/metadata/opf2.py index d2a0f3c2eb..bc92da35e7 100644 --- a/src/calibre/ebooks/metadata/opf2.py +++ b/src/calibre/ebooks/metadata/opf2.py @@ -272,6 +272,10 @@ class Spine(ResourceCollection): self.id = idfunc(self.path) self.idref = None + def __repr__(self): + return 'Spine.Item(path=%r, id=%s, is_linear=%s)' % \ + (self.path, self.id, self.is_linear) + @staticmethod def from_opf_spine_element(itemrefs, manifest): s = Spine(manifest) @@ -280,7 +284,7 @@ class Spine(ResourceCollection): if idref is not None: path = s.manifest.path_for_id(idref) if path: - r = Spine.Item(s.manifest.id_for_path, path, is_path=True) + r = Spine.Item(lambda x:idref, path, is_path=True) r.is_linear = itemref.get('linear', 'yes') == 'yes' r.idref = idref s.append(r)