_add_pkg_deps: use _get_eapi_attrs
authorZac Medico <zmedico@gentoo.org>
Wed, 26 Sep 2012 02:14:32 +0000 (19:14 -0700)
committerZac Medico <zmedico@gentoo.org>
Wed, 26 Sep 2012 02:14:32 +0000 (19:14 -0700)
pym/_emerge/depgraph.py
pym/portage/eapi.py

index d228694ba834a1c5dc5ebe11248f1c9fe0131a17..dee3f1f910b4d080950eb1e24d6fc6509a4c844f 100644 (file)
@@ -24,7 +24,7 @@ from portage.dep import Atom, best_match_to_list, extract_affecting_use, \
        _repo_separator
 from portage.dep._slot_operator import ignore_built_slot_operator_deps
 from portage.eapi import eapi_has_strong_blocks, eapi_has_required_use, \
-       _get_eapi_attrs, eapi_has_hdepend
+       _get_eapi_attrs
 from portage.exception import (InvalidAtom, InvalidDependString,
        PackageNotFound, PortageException)
 from portage.output import colorize, create_color_func, \
@@ -1679,6 +1679,7 @@ class depgraph(object):
                myroot = pkg.root
                metadata = pkg.metadata
                removal_action = "remove" in self._dynamic_config.myparams
+               eapi_attrs = _get_eapi_attrs(pkg.metadata["EAPI"])
 
                edepend={}
                depkeys = ["DEPEND","RDEPEND","PDEPEND","HDEPEND"]
@@ -1718,7 +1719,7 @@ class depgraph(object):
                if removal_action:
                        depend_root = myroot
                else:
-                       if eapi_has_hdepend(pkg.metadata['EAPI']):
+                       if eapi_attrs.hdepend:
                                depend_root = myroot
                        else:
                                depend_root = self._frozen_config._running_root.root
index 7c4584382267e2dc6a3dde3536af8fe9a5615549..4936e6cd7078734f4425e1cf029d7671a4022dfb 100644 (file)
@@ -91,7 +91,8 @@ def eapi_has_targetroot(eapi):
 
 _eapi_attrs = collections.namedtuple('_eapi_attrs',
        'dots_in_PN dots_in_use_flags exports_EBUILD_PHASE_FUNC '
-       'feature_flag_test feature_flag_targetroot iuse_defaults iuse_effective '
+       'feature_flag_test feature_flag_targetroot '
+       'hdepend iuse_defaults iuse_effective '
        'repo_deps required_use required_use_at_most_one_of slot_operator slot_deps '
        'src_uri_arrows strong_blocks use_deps use_dep_defaults')
 
@@ -118,7 +119,8 @@ def _get_eapi_attrs(eapi):
                dots_in_use_flags = (eapi is None or eapi_allows_dots_in_use_flags(eapi)),
                exports_EBUILD_PHASE_FUNC = (eapi is None or eapi_exports_EBUILD_PHASE_FUNC(eapi)),
                feature_flag_test = True,
-               feature_flag_targetroot = eapi_has_targetroot(eapi),
+               feature_flag_targetroot = (eapi is not None and eapi_has_targetroot(eapi)),
+               hdepend = (eapi is not None and eapi_has_hdepend(eapi)),
                iuse_defaults = (eapi is None or eapi_has_iuse_defaults(eapi)),
                iuse_effective = (eapi is not None and eapi_has_iuse_effective(eapi)),
                repo_deps = (eapi is None or eapi_has_repo_deps(eapi)),