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
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),
for field in self.FIELDS:
value = field.validate(dc_fields, fallbacks=fallbacks,
strict=strict, validate_required=validate_required)
- print(field.name, value)
setattr(self, 'prop_' + field.name, value)
self.fmap[field.name] = field
if field.salias:
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',