From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 55845138200 for ; Tue, 17 Sep 2013 16:41:02 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id A3674E0C57; Tue, 17 Sep 2013 16:41:00 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 01BAEE0C57 for ; Tue, 17 Sep 2013 16:40:59 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 1148533ECC0 for ; Tue, 17 Sep 2013 16:40:59 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id BC4F9E5467 for ; Tue, 17 Sep 2013 16:40:56 +0000 (UTC) From: "André Erdmann" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "André Erdmann" Message-ID: <1379436032.43c0ad633946458d8d185e8a456a6379e55dbb82.dywi@gentoo> Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/ X-VCS-Repository: proj/R_overlay X-VCS-Files: roverlay/argparser.py roverlay/argutil.py X-VCS-Directories: roverlay/ X-VCS-Committer: dywi X-VCS-Committer-Name: André Erdmann X-VCS-Revision: 43c0ad633946458d8d185e8a456a6379e55dbb82 X-VCS-Branch: master Date: Tue, 17 Sep 2013 16:40:56 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 3070dd31-35ba-4cc3-9d92-4c4f00a6c15f X-Archives-Hash: b9c6625a0b7b43435b2b5fbb6d2071a9 commit: 43c0ad633946458d8d185e8a456a6379e55dbb82 Author: André Erdmann mailerd de> AuthorDate: Tue Sep 17 16:40:32 2013 +0000 Commit: André Erdmann mailerd de> CommitDate: Tue Sep 17 16:40:32 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=43c0ad63 argparser: subparse_parsed() --- roverlay/argparser.py | 18 +++++++++++++++++- roverlay/argutil.py | 4 ++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/roverlay/argparser.py b/roverlay/argparser.py index 81b3300..04feff8 100644 --- a/roverlay/argparser.py +++ b/roverlay/argparser.py @@ -123,6 +123,17 @@ class RoverlayArgumentParserBase ( roverlay.argutil.ArgumentParserProxy ): def parse ( self, *args, **kwargs ): self.parse_args ( *args, **kwargs ) parsed = vars ( self.parsed ) + return self.parse_parsed ( parsed ) + # --- end of parse (...) --- + + def subparse_parsed ( self, parsed ): + self.parsed = parsed + if hasattr ( self.__class__, 'PARSE_TARGETS' ): + for attr in self.__class__.PARSE_TARGETS: + getattr ( self, 'parse_' + attr )() + # --- end of subparse_parsed (...) --- + + def parse_parsed ( self, parsed ): self.parsed = parsed self.extra_conf = dict() @@ -189,7 +200,7 @@ class RoverlayArgumentParserBase ( roverlay.argutil.ArgumentParserProxy ): if hasattr ( self.__class__, 'PARSE_TARGETS' ): for attr in self.__class__.PARSE_TARGETS: getattr ( self, 'parse_' + attr )() - # --- end of parse (...) --- + # --- end of parse_parsed (...) --- def setup ( self ): if hasattr ( self.__class__, 'SETUP_TARGETS' ): @@ -651,6 +662,11 @@ class RoverlayArgumentParser ( RoverlayArgumentParserBase ): def parse_actions ( self ): self.command = self.parsed ['command'] + + if self.__class__.COMMAND_SUBPARSERS: + subparser = self.get_subparser ( self.command ) + if hasattr ( subparser, 'subparse_parsed' ): + subparser.subparse_parsed ( self.parsed ) # --- end of parse_actions (...) --- # --- end of RoverlayArgumentParser --- diff --git a/roverlay/argutil.py b/roverlay/argutil.py index 7c36980..b8f8363 100644 --- a/roverlay/argutil.py +++ b/roverlay/argutil.py @@ -314,7 +314,7 @@ class ArgumentParserProxy ( object ): if default is argparse.SUPPRESS: default_str = self.STR_SUPPRESS - elif default in { True, False }: + elif default is True or default is False: if flags & self.ARG_INVERSE: default_str = self.STR_FALSE if default else self.STR_TRUE else: @@ -392,7 +392,7 @@ class ArgumentParserProxy ( object ): # --- end of parse_args (...) --- def parse ( self, *args, **kwargs ): - print ( "ArgumentParserProxy.parse() is deprecated. Use parse_args()." ) + # likely overridden by derived classes return self.parse_args ( *args, **kwargs ) # --- end of parse (...) ---