From ce0cbf82cafc78ee22354257b9821d55b780d35e Mon Sep 17 00:00:00 2001 From: Brian Dolbec Date: Sat, 29 Jan 2011 19:22:58 -0800 Subject: add a new function to MaskManager that optimizies getting any raw mask atoms --- pym/_emerge/Package.py | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) (limited to 'pym/_emerge/Package.py') diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py index 96c76b965..ae9e8f293 100644 --- a/pym/_emerge/Package.py +++ b/pym/_emerge/Package.py @@ -239,7 +239,7 @@ class Package(Task): def accepted_keyword(self): """returns the keyword used from the ebuild's KEYWORDS string""" - + keywords = set(self.metadata.get('KEYWORDS').split()) accept_keywords = set(self.root_config.settings['ACCEPT_KEYWORDS'].split()) used_keyword = list(set.intersection(keywords, accept_keywords)) @@ -250,31 +250,14 @@ class Package(Task): writemsg_level( "_emerge.output.resolver.Display(), too many keywords recieved for pkg: %s, %s" % (pkg.cpv, used_keyword)) used_keyword = used_keyword[0] - #print "pmaskdict", self.root_config.settings.pmaskdict return used_keyword def isHardMasked(self): - """returns a bool if the cpv is in the list of + """returns a bool if the cpv is in the list of expanded pmaskdict[cp] availble ebuilds""" - try: - # returns a list of mask atoms - pmask = self.root_config.settings.pmaskdict[self.cp] - except KeyError: - pmask = [] - if pmask: - # narrow pmask atoms down to the relevant repo - n = [x for x in pmask if x.split('::')[-1] in [self.repo]] - # hopefully it is down to only 1 mask atom - #print "n =", n - #count = 0 - hardmasked = set() - for x in n: - #expand the atom to matching available ebuilds - hardmasked.update(self.root_config.trees['porttree'].dbapi.xmatch("match-all",x)) - #count += 1 - #print "for x in n: loop count =", count, hardmasked - return self.cpv in hardmasked - return False + pmask = self.root_config.settings._getRawMaskAtom(self.cpv, self.metadata) + print "pmask =", pmask + return pmask is not None def _metadata_exception(self, k, e): @@ -448,7 +431,7 @@ class Package(Task): not self._iuse_implicit_match(flag): return False return True - + def get_missing_iuse(self, flags): """ @returns: A list of flags missing from IUSE. -- cgit v1.2.3-1-g7c22