X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/8c0d2b20aee2edeb9bd8639ee7fb1887359e9797..2976553c3f33b52495ea4ba4335e22f7c068fdf4:/lib/librarian/dcparser.py diff --git a/lib/librarian/dcparser.py b/lib/librarian/dcparser.py index 9281325c6..8542553cf 100644 --- a/lib/librarian/dcparser.py +++ b/lib/librarian/dcparser.py @@ -45,7 +45,7 @@ def str_to_unicode(value, previous): def str_to_unicode_list(value, previous): if previous is None: previous = [] - previous.append(str_to_unicode(value)) + previous.append(str_to_unicode(value, None)) return previous @@ -76,7 +76,7 @@ def str_to_date(value, previous): # ========== class ParseError(Exception): def __init__(self, message): - super(self, Exception).__init__(message) + super(ParseError, self).__init__(message) class XMLNamespace(object): @@ -165,6 +165,17 @@ class BookInfo(object): return unicode(etree.tostring(root, 'utf-8'), 'utf-8') + def to_dict(self): + etree._namespace_map[str(self.RDF)] = 'rdf' + etree._namespace_map[str(self.DC)] = 'dc' + + result = {} + for tag, (attribute, converter) in self.mapping.iteritems(): + if hasattr(self, attribute): + result[attribute] = unicode(getattr(self, attribute)) + + return result + def parse(file_name): return BookInfo.from_file(file_name)