From 55cd4ceae6ed39b52daaad89f111d87c25be9c9b Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 7 Jun 2013 19:48:51 -0700 Subject: [PATCH] _iter_match_use: construct _pkg_str instances Now _match_use does not have to construct them itself. --- pym/portage/dbapi/__init__.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/pym/portage/dbapi/__init__.py b/pym/portage/dbapi/__init__.py index f954bad94..a20a1e84f 100644 --- a/pym/portage/dbapi/__init__.py +++ b/pym/portage/dbapi/__init__.py @@ -193,18 +193,27 @@ class dbapi(object): except KeyError: continue + try: + cpv.slot + except AttributeError: + try: + cpv = _pkg_str(cpv, metadata=metadata, + settings=self.settings) + except InvalidData: + continue + if not self._match_use(atom, cpv, metadata): continue yield cpv - def _match_use(self, atom, cpv, metadata): + def _match_use(self, atom, pkg, metadata): eapi_attrs = _get_eapi_attrs(metadata["EAPI"]) if eapi_attrs.iuse_effective: iuse_implicit_match = self.settings._iuse_effective_match else: iuse_implicit_match = self.settings._iuse_implicit_match - usealiases = self.settings._use_manager.getUseAliases(self._pkg_str(cpv, metadata["repository"])) + usealiases = self.settings._use_manager.getUseAliases(pkg) iuse = Package._iuse(None, metadata["IUSE"].split(), iuse_implicit_match, usealiases, metadata["EAPI"]) for x in atom.unevaluated_atom.use.required: @@ -245,12 +254,6 @@ class dbapi(object): elif not self.settings.local_config: # Check masked and forced flags for repoman. - try: - cpv.slot - except AttributeError: - pkg = _pkg_str(cpv, metadata=metadata, settings=self.settings) - else: - pkg = cpv usemask = self.settings._getUseMask(pkg, stable=self.settings._parent_stable) if any(x in usemask for x in atom.use.enabled): -- 2.26.2