X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/c072a663ad2d9d8871bb76a7e27b3580b7d92222..bd97f61d25eb0c3e51a29286c7de509146eceb37:/src/librarian/dcparser.py?ds=sidebyside diff --git a/src/librarian/dcparser.py b/src/librarian/dcparser.py index 7a11788..2edba6c 100644 --- a/src/librarian/dcparser.py +++ b/src/librarian/dcparser.py @@ -15,14 +15,13 @@ import lxml.etree as etree from lxml.etree import XMLSyntaxError from librarian.meta.types.bool import BoolValue -from librarian.meta.types.date import DateValue from librarian.meta.types.person import Person from librarian.meta.types.wluri import WLURI -from librarian.meta.types.text import TextValue +from librarian.meta.types import text class Field(object): - def __init__(self, uri, attr_name, value_type=TextValue, + def __init__(self, uri, attr_name, value_type=text.TextValue, multiple=False, salias=None, **kwargs): self.uri = uri self.name = attr_name @@ -121,7 +120,7 @@ class WorkInfo(six.with_metaclass(DCInfo, object)): Field(DCNS('contributor.thanks'), 'thanks', required=False), Field(DCNS('date'), 'created_at'), - Field(DCNS('date.pd'), 'released_to_public_domain_at', DateValue, + Field(DCNS('date.pd'), 'released_to_public_domain_at', required=False), Field(DCNS('publisher'), 'publisher', multiple=True), @@ -353,17 +352,17 @@ class WorkInfo(six.with_metaclass(DCInfo, object)): class BookInfo(WorkInfo): FIELDS = ( - Field(DCNS('audience'), 'audiences', salias='audience', multiple=True, + Field(DCNS('audience'), 'audiences', text.Audience, salias='audience', multiple=True, required=False), - Field(DCNS('subject.period'), 'epochs', salias='epoch', multiple=True, + Field(DCNS('subject.period'), 'epochs', text.Epoch, salias='epoch', multiple=True, required=False), - Field(DCNS('subject.type'), 'kinds', salias='kind', multiple=True, + Field(DCNS('subject.type'), 'kinds', text.Kind, salias='kind', multiple=True, required=False), - Field(DCNS('subject.genre'), 'genres', salias='genre', multiple=True, + Field(DCNS('subject.genre'), 'genres', text.Genre, salias='genre', multiple=True, required=False), - Field(WLNS('category.legimi'), 'legimi', required=False), - + Field(WLNS('category.legimi'), 'legimi', text.LegimiCategory, required=False), + Field(WLNS('category.thema'), 'thema', text.ThemaCategory, required=False, multiple=True), Field(DCNS('subject.location'), 'location', required=False), Field(DCNS('contributor.translator'), 'translators',