From d9c4c2ba3172bb39e1255479be53338d27dfa954 Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Mon, 18 Jul 2022 13:38:17 +0200 Subject: [PATCH] Add meta types. --- CHANGELOG.md | 12 +++++++++++- setup.py | 2 +- src/librarian/dcparser.py | 14 +++++++------- src/librarian/meta/types/text.py | 25 +++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fd3ea03..eeb4c66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,17 @@ This document records all notable changes to Librarian. -@@ 2.4.6 (2022-07-15) +## 2.4.7 (2022-07-18) + +# Added +- Metadata types. + +# Fixed +- Don't validate comment contents. +- Ignore translators on new cover if too long. + + +## 2.4.6 (2022-07-15) # Fixed: - Bug in reading child books. diff --git a/setup.py b/setup.py index a48f2d7..8cec542 100755 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ def whole_tree(prefix, path): setup( name='librarian', - version='2.4.6', + version='2.4.7', description='Converter from WolneLektury.pl XML-based language to XHTML, TXT and other formats', author="Marek Stępniowski", author_email='marek@stepniowski.com', diff --git a/src/librarian/dcparser.py b/src/librarian/dcparser.py index 7a11788..075c7c7 100644 --- a/src/librarian/dcparser.py +++ b/src/librarian/dcparser.py @@ -18,11 +18,11 @@ 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 @@ -353,16 +353,16 @@ 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(DCNS('subject.location'), 'location', required=False), diff --git a/src/librarian/meta/types/text.py b/src/librarian/meta/types/text.py index b53aa88..5241398 100644 --- a/src/librarian/meta/types/text.py +++ b/src/librarian/meta/types/text.py @@ -8,3 +8,28 @@ class TextValue(MetaValue, str): def __str__(self): return self.value + + + +class NameIdentifier(TextValue): + has_language = False + + +class LegimiCategory(NameIdentifier): + pass + + +class Epoch(NameIdentifier): + pass + + +class Kind(NameIdentifier): + pass + + +class Genre(NameIdentifier): + pass + + +class Audience(NameIdentifier): + pass -- 2.20.1