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 puffotter.os import listdir
22from toktokkie.metadata.base.Prompter import Prompter
23from toktokkie.metadata.book.BookExtras import BookExtras
24from toktokkie.exceptions import InvalidDirectoryState
27class BookPrompter(Prompter, BookExtras, ABC):
28 """
29 Implements the Prompter functionality for book metadata
30 """
32 @classmethod
33 def pre_prompt_check(cls, directory_path: str):
34 """
35 Makes sure that the book directory has exactly one book file
36 :param directory_path: The path to the directory to check
37 :return: None
38 """
39 super().pre_prompt_check(directory_path)
40 filecount = len(listdir(directory_path, no_dirs=True))
41 if filecount == 0:
42 raise InvalidDirectoryState("No book file")
43 elif filecount > 1:
44 raise InvalidDirectoryState("More than one book file")