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 

20import argparse 

21import logging 

22 

23 

24class Command: 

25 """ 

26 Class that encapsulates behaviour of a command for the toktokkie script 

27 """ 

28 

29 def __init__(self, args: argparse.Namespace): 

30 """ 

31 Initializes the command object 

32 :param args: The command line arguments 

33 """ 

34 self.logger = logging.getLogger(self.__class__.__name__) 

35 self.args = args 

36 

37 @classmethod 

38 def name(cls) -> str: 

39 """ 

40 :return: The command name 

41 """ 

42 raise NotImplementedError() # pragma: no cover 

43 

44 @classmethod 

45 def help(cls) -> str: 

46 """ 

47 :return: The help message for the command 

48 """ 

49 raise NotImplementedError() # pragma: no cover 

50 

51 @classmethod 

52 def prepare_parser(cls, parser: argparse.ArgumentParser): 

53 """ 

54 Prepares an argumentparser for this command 

55 :param parser: The parser to prepare 

56 :return: None 

57 """ 

58 raise NotImplementedError() # pragma: no cover 

59 

60 def execute(self): 

61 """ 

62 Executes the commands 

63 :return: None 

64 """ 

65 raise NotImplementedError() # pragma: no cover 

66 

67 @staticmethod 

68 def add_directories_arg(parser: argparse.ArgumentParser): 

69 """ 

70 Adds a directories argument to a parser 

71 :param parser: The parser to which to add the argument 

72 :return: None 

73 """ 

74 parser.add_argument("directories", nargs="+", 

75 help="The directories to use. Files and " 

76 "directories that do not contain a valid " 

77 "metadata configuration will be ignored.")