fix for files without dc
authorRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Thu, 22 Jul 2010 15:00:10 +0000 (17:00 +0200)
committerRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Thu, 22 Jul 2010 15:00:10 +0000 (17:00 +0200)
librarian/epub.py

index e54e4cd..139dd39 100644 (file)
@@ -13,7 +13,7 @@ from copy import deepcopy
 from lxml import etree
 import zipfile
 
 from lxml import etree
 import zipfile
 
-from librarian import XMLNamespace, RDFNS, DCNS, WLNS, XHTMLNS
+from librarian import XMLNamespace, RDFNS, DCNS, WLNS, XHTMLNS, NoDublinCore
 
 NCXNS = XMLNamespace("http://www.daisy.org/z3986/2005/ncx/")
 OPFNS = XMLNamespace("http://www.idpf.org/2007/opf")
 
 NCXNS = XMLNamespace("http://www.daisy.org/z3986/2005/ncx/")
 OPFNS = XMLNamespace("http://www.idpf.org/2007/opf")
@@ -211,6 +211,8 @@ def transform(input_file, output_file):
                        '</rootfiles></container>')
 
     metadata_el = input_xml.find('.//'+RDFNS('Description'))
                        '</rootfiles></container>')
 
     metadata_el = input_xml.find('.//'+RDFNS('Description'))
+    if metadata_el is None:
+        raise NoDublinCore('Document has no DublinCore - which is required.')
     metadatasource = etree.ElementTree(metadata_el)
 
     opf = xslt(metadatasource, res('xsltContent.xsl'))
     metadatasource = etree.ElementTree(metadata_el)
 
     opf = xslt(metadatasource, res('xsltContent.xsl'))