Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1"""LICENSE
2Copyright 2015 Hermann Krumrey <hermann@krumreyh.com>
4This file is part of toktokkie.
6toktokkie is free software: you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation, either version 3 of the License, or
9(at your option) any later version.
11toktokkie is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
16You should have received a copy of the GNU General Public License
17along with toktokkie. If not, see <http://www.gnu.org/licenses/>.
18LICENSE"""
20from abc import ABC
21from typing import Dict, Any
22from toktokkie.metadata.base.Validator import Validator
23from toktokkie.metadata.book_series.BookSeriesExtras import BookSeriesExtras
26class BookSeriesValidator(Validator, BookSeriesExtras, ABC):
27 """
28 Implements the Validator functionality for book series metadata
29 """
31 @classmethod
32 def build_schema(cls) -> Dict[str, Any]:
33 """
34 Generates the JSON schema
35 :return: The JSON schema
36 """
37 base = super().build_schema()
38 ids = cls._create_ids_schema()
39 base["properties"].update({
40 "volumes": {
41 "type": "object",
42 "patternProperties": {
43 "^[0-9]+$": {
44 "type": "object",
45 "properties": {
46 "ids": ids
47 }
48 }
49 },
50 "additionalProperties": False
51 }
52 })
53 return base