From: Frank Brehm Date: Wed, 22 Mar 2017 14:29:59 +0000 (+0100) Subject: Adding command line parameter '--quiet' to pp_lib/app.py X-Git-Tag: 0.1.2~233 X-Git-Url: https://git.uhu-banane.net/?a=commitdiff_plain;h=158df1afee6ebb1b90d908838bfadd0ef18559c1;p=pixelpark%2Fadmin-tools.git Adding command line parameter '--quiet' to pp_lib/app.py --- diff --git a/pp_lib/app.py b/pp_lib/app.py index 92bd706..2d756af 100644 --- a/pp_lib/app.py +++ b/pp_lib/app.py @@ -33,7 +33,7 @@ from .colored import ColoredFormatter, colorstr from .obj import PpBaseObjectError, PpBaseObject -__version__ = '0.2.2' +__version__ = '0.3.1' LOG = logging.getLogger(__name__) @@ -101,6 +101,8 @@ class PpApplication(PpBaseObject): @type: bool """ + self._quiet = False + self.env = {} """ @ivar: a dictionary with all application specifiv environment variables, @@ -220,6 +222,17 @@ class PpApplication(PpBaseObject): """The length of the localized version of 'usage: '""" return len(self.usage_term) + # ----------------------------------------------------------- + @property + def quiet(self): + """Quiet execution of the application, + only warnings and errors are emitted.""" + return self._quiet + + @quiet.setter + def quiet(self, value): + self._quiet = bool(value) + # ------------------------------------------------------------------------- def exit(self, retval=-1, msg=None, trace=False): """ @@ -283,6 +296,7 @@ class PpApplication(PpBaseObject): res = super(PpApplication, self).as_dict(short=short) res['exit_value'] = self.exit_value res['usage'] = self.usage + res['quiet'] = self.quiet res['description'] = self.description res['argparse_epilog'] = self.argparse_epilog res['argparse_prefix_chars'] = self.argparse_prefix_chars @@ -301,10 +315,14 @@ class PpApplication(PpBaseObject): @return: None """ - root_logger = logging.getLogger() - root_logger.setLevel(logging.INFO) + log_level = logging.INFO if self.verbose: - root_logger.setLevel(logging.DEBUG) + log_level = logging.DEBUG + elif self.quiet: + log_level = logging.WARNING + + root_logger = logging.getLogger() + root_logger.setLevel(log_level) # create formatter format_str = '' @@ -325,10 +343,7 @@ class PpApplication(PpBaseObject): # create log handler for console output lh_console = logging.StreamHandler(sys.stderr) - if self.verbose: - lh_console.setLevel(logging.DEBUG) - else: - lh_console.setLevel(logging.INFO) + lh_console.setLevel(log_level) lh_console.setFormatter(formatter) root_logger.addHandler(lh_console) @@ -489,12 +504,23 @@ class PpApplication(PpBaseObject): choices=['yes', 'no', 'auto'], help="Use colored output for messages.", ) - general_group.add_argument( + + verbose_group = general_group.add_mutually_exclusive_group() + + verbose_group.add_argument( "-v", "--verbose", action="count", dest='verbose', help='Increase the verbosity level', ) + + verbose_group.add_argument( + "-q", "--quiet", + action="store_true", + dest='quiet', + help='Silent execution, only warnings and errors are emitted.', + ) + general_group.add_argument( "-h", "--help", action='help', @@ -545,6 +571,9 @@ class PpApplication(PpBaseObject): if self.args.verbose is not None and self.args.verbose > self.verbose: self.verbose = self.args.verbose + if self.args.quiet: + self.quiet = self.args.quiet + if self.args.color == 'yes': self._terminal_has_colors = True elif self.args.color == 'no':