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 7E9DD1381F3 for ; Wed, 21 Aug 2013 10:10:41 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 0E8C8E07FD; Wed, 21 Aug 2013 10:10:39 +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 87571E07FD for ; Wed, 21 Aug 2013 10:10:38 +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 1334933EAD8 for ; Wed, 21 Aug 2013 10:10:37 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id BA4FCE468F for ; Wed, 21 Aug 2013 10:10:35 +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: <1377079754.ca3d1659b093752071b3faf46b649d2145b118ab.dywi@gentoo> Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/depres/simpledeprule/ X-VCS-Repository: proj/R_overlay X-VCS-Files: roverlay/depres/simpledeprule/abstractrules.py roverlay/depres/simpledeprule/rulemaker.py roverlay/depres/simpledeprule/rules.py X-VCS-Directories: roverlay/depres/simpledeprule/ X-VCS-Committer: dywi X-VCS-Committer-Name: André Erdmann X-VCS-Revision: ca3d1659b093752071b3faf46b649d2145b118ab X-VCS-Branch: master Date: Wed, 21 Aug 2013 10:10:35 +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: 0c30f429-4db0-4773-88d9-0d08d3b270d5 X-Archives-Hash: 490118beeff2daafacda19eabf6f35ec commit: ca3d1659b093752071b3faf46b649d2145b118ab Author: André Erdmann mailerd de> AuthorDate: Wed Aug 21 10:09:14 2013 +0000 Commit: André Erdmann mailerd de> CommitDate: Wed Aug 21 10:09:14 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=ca3d1659 fix rule printing / selfdep multi-line rule parsing is_selfdep=N was missing in SimpleRuleMaker.handle_multiline_begin(). --- roverlay/depres/simpledeprule/abstractrules.py | 32 +++++++++++++++---------- roverlay/depres/simpledeprule/rulemaker.py | 33 ++++++++++++++++---------- roverlay/depres/simpledeprule/rules.py | 16 ++++--------- 3 files changed, 45 insertions(+), 36 deletions(-) diff --git a/roverlay/depres/simpledeprule/abstractrules.py b/roverlay/depres/simpledeprule/abstractrules.py index a94d2f3..37d3958 100644 --- a/roverlay/depres/simpledeprule/abstractrules.py +++ b/roverlay/depres/simpledeprule/abstractrules.py @@ -18,6 +18,8 @@ TMP_LOGGER = logging.getLogger ('simpledeps') class SimpleRule ( deprule.DependencyRule ): """A dependency rule that represents an ignored package in portage.""" + INDENT = 3 * ' ' + def __init__ ( self, dep_str=None, priority=50, resolving_package=None, is_selfdep=0, logger_name='simple_rule', @@ -137,25 +139,31 @@ class SimpleRule ( deprule.DependencyRule ): resolving = self.__class__.RULE_PREFIX + resolving # -- end if; - if self.is_selfdep: - if self.is_selfdep == 1: - yield '@selfdep' + + if self.is_selfdep == 2: yield resolving - elif len ( self.dep_alias ) == 0: - pass + elif self.dep_alias: + if self.is_selfdep == 1: + yield '@selfdep' - elif len ( self.dep_alias ) == 1: - yield "{} :: {}".format ( resolving, next ( iter ( self.dep_alias ) ) ) + if len ( self.dep_alias ) == 1: + yield "{} :: {}".format ( + resolving, next ( iter ( self.dep_alias ) ) + ) - else: - yield resolving + ' {' - for alias in self.dep_alias: - yield "\t" + alias - yield '}' + else: + yield resolving + ' {' + for alias in self.dep_alias: + yield self.INDENT + alias + yield '}' + # --- end of export_rule (...) --- def __str__ ( self ): return '\n'.join ( self.export_rule() ) + # --- end of __str__ (...) --- + +# --- end of SimpleRule --- class FuzzySimpleRule ( SimpleRule ): diff --git a/roverlay/depres/simpledeprule/rulemaker.py b/roverlay/depres/simpledeprule/rulemaker.py index cfb2736..083fd97 100644 --- a/roverlay/depres/simpledeprule/rulemaker.py +++ b/roverlay/depres/simpledeprule/rulemaker.py @@ -90,24 +90,30 @@ class SimpleRuleMaker ( roverlay.util.mapreader.MapFileParser ): # --- end of _parse_deptype (...) --- def _get_effective_deptype ( self, clear_temporary=True ): + """Returns a 2-tuple ( , ) based on + self._deptype and self._deptype_once. deptype_is_selfdep is an int + (0 or 1), "true" selfdeps (2) cannot be recognized here. + + arguments: + * clear_temporary -- clear self._deptype_once + """ if self._deptype_once is not deptype.NONE: + ret = self._deptype_once if clear_temporary: - ret = self._deptype_once self._deptype_once = deptype.NONE - return ret - else: - self._deptype_once else: - return self._deptype + ret = self._deptype + + return ( ret, 1 if ( ret & deptype.selfdep ) else 0 ) # --- end of _get_effective_deptype (...) --- def handle_entry_line ( self, dep, dep_str='' ): # single line rule, either selfdep, # e.g. '~zoo' -> fuzzy sci-R/zoo :: zoo # or normal rule 'dev-lang/R :: R' - # selfdeps are always single line statements (!) + # selfdeps (rule stubs) are always single line statements (!) - rule_deptype = self._get_effective_deptype() + rule_deptype, is_selfdep = self._get_effective_deptype() rule_class, resolving, kwargs = self._kwmap.lookup ( dep ) if dep_str: @@ -115,9 +121,7 @@ class SimpleRuleMaker ( roverlay.util.mapreader.MapFileParser ): new_rule = rule_class ( resolving_package = resolving, dep_str = dep_str, - is_selfdep = ( - 1 if ( rule_deptype & deptype.selfdep ) else 0 - ), + is_selfdep = is_selfdep, **kwargs ) @@ -143,11 +147,16 @@ class SimpleRuleMaker ( roverlay.util.mapreader.MapFileParser ): # --- end of handle_entry_line (...) --- def handle_multiline_begin ( self, line ): + rule_deptype, is_selfdep = self._get_effective_deptype() rule_class, resolving, kwargs = self._kwmap.lookup ( line ) self._next = ( - self._get_effective_deptype(), - rule_class ( resolving_package=resolving, **kwargs ), + rule_deptype, + rule_class ( + resolving_package = resolving, + is_selfdep = is_selfdep, + **kwargs + ), ) return True # --- end of handle_multiline_begin (...) --- diff --git a/roverlay/depres/simpledeprule/rules.py b/roverlay/depres/simpledeprule/rules.py index 7e40ed7..306e27d 100644 --- a/roverlay/depres/simpledeprule/rules.py +++ b/roverlay/depres/simpledeprule/rules.py @@ -146,12 +146,8 @@ class SimpleIgnoreDependencyRule ( SimpleRule ): priority=50, **kw ) +# --- end of SimpleIgnoreDependencyRule --- - def __str__ ( self ): - if self.is_selfdep: - return self.__class__.RULE_PREFIX + next ( iter ( self.dep_alias ) ) - else: - return super ( self.__class__, self ) . __str__() class SimpleDependencyRule ( SimpleRule ): @@ -170,9 +166,11 @@ class SimpleDependencyRule ( SimpleRule ): resolving_package=resolving_package, **kw ) - # --- end of __init__ (...) --- +# --- end of SimpleDependencyRule --- + + class SimpleFuzzyIgnoreDependencyRule ( FuzzySimpleRule ): RULE_PREFIX = '%' @@ -185,12 +183,6 @@ class SimpleFuzzyIgnoreDependencyRule ( FuzzySimpleRule ): **kw ) - def __str__ ( self ): - if self.is_selfdep: - return self.__class__.RULE_PREFIX + next ( iter ( self.dep_alias ) ) - else: - return super ( self.__class__, self ) . __str__() - def handle_version_relative_match ( self, *args, **kwargs ): raise Exception ( "should-be unreachable code" ) # --- end of handle_version_relative_match (...) ---