Hide keyboard shortcuts

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> 

3 

4This file is part of toktokkie. 

5 

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. 

10 

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. 

15 

16You should have received a copy of the GNU General Public License 

17along with toktokkie. If not, see <http://www.gnu.org/licenses/>. 

18LICENSE""" 

19 

20from abc import ABC 

21from typing import Dict, Any 

22from toktokkie.metadata.base.Validator import Validator 

23from toktokkie.metadata.book_series.BookSeriesExtras import BookSeriesExtras 

24 

25 

26class BookSeriesValidator(Validator, BookSeriesExtras, ABC): 

27 """ 

28 Implements the Validator functionality for book series metadata 

29 """ 

30 

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