diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-06-08 15:08:19 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-06-08 17:27:12 -0700 |
commit | 50e4d62e296c2579682d2cf11a29ada83c1323db (patch) | |
tree | d8fc2477c741b25016023b45bd476e22f80510c4 /pym/portage/dep | |
parent | InheritEclass: avoid false positive in func regex (diff) | |
download | portage-50e4d62e296c2579682d2cf11a29ada83c1323db.tar.gz portage-50e4d62e296c2579682d2cf11a29ada83c1323db.tar.bz2 portage-50e4d62e296c2579682d2cf11a29ada83c1323db.zip |
depgraph: pass use_reduce result to dep_check
This allows us to avoid extraneous use_reduce/paren_enclose calls.
Diffstat (limited to 'pym/portage/dep')
-rw-r--r-- | pym/portage/dep/__init__.py | 7 | ||||
-rw-r--r-- | pym/portage/dep/dep_check.py | 15 |
2 files changed, 14 insertions, 8 deletions
diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py index 4cd081310..ade3a73a8 100644 --- a/pym/portage/dep/__init__.py +++ b/pym/portage/dep/__init__.py @@ -250,7 +250,7 @@ class paren_normalize(list): self._zap_parens(x, dest) return dest -def paren_enclose(mylist, unevaluated_atom=False): +def paren_enclose(mylist, unevaluated_atom=False, opconvert=False): """ Convert a list to a string with sublists enclosed with parens. @@ -267,7 +267,10 @@ def paren_enclose(mylist, unevaluated_atom=False): mystrparts = [] for x in mylist: if isinstance(x, list): - mystrparts.append("( "+paren_enclose(x)+" )") + if opconvert and x and x[0] == "||": + mystrparts.append("%s ( %s )" % (x[0], paren_enclose(x[1:]))) + else: + mystrparts.append("( %s )" % paren_enclose(x)) else: if unevaluated_atom: x = getattr(x, 'unevaluated_atom', x) diff --git a/pym/portage/dep/dep_check.py b/pym/portage/dep/dep_check.py index 99a5eb011..d575ab3bc 100644 --- a/pym/portage/dep/dep_check.py +++ b/pym/portage/dep/dep_check.py @@ -611,12 +611,15 @@ def dep_check(depstring, mydbapi, mysettings, use="yes", mode=None, myuse=None, if not current_parent.installed: eapi = current_parent.metadata['EAPI'] - try: - mysplit = use_reduce(depstring, uselist=myusesplit, masklist=mymasks, \ - matchall=(use=="all"), excludeall=useforce, opconvert=True, \ - token_class=Atom, eapi=eapi) - except InvalidDependString as e: - return [0, _unicode_decode("%s") % (e,)] + if isinstance(depstring, list): + mysplit = depstring + else: + try: + mysplit = use_reduce(depstring, uselist=myusesplit, + masklist=mymasks, matchall=(use=="all"), excludeall=useforce, + opconvert=True, token_class=Atom, eapi=eapi) + except InvalidDependString as e: + return [0, _unicode_decode("%s") % (e,)] if mysplit == []: #dependencies were reduced to nothing |