Fix Bug 414627, where not all packages were being printed.
authorPaul Varner <fuzzyray@gentoo.org>
Tue, 8 May 2012 21:03:04 +0000 (16:03 -0500)
committerPaul Varner <fuzzyray@gentoo.org>
Tue, 8 May 2012 21:03:04 +0000 (16:03 -0500)
Not sure of why this fixes it, but it appears to be caused by
interaction between the map() and zip() iterator objects in python3.

The fix is to use the list() operator to create a list from the iterator
objects.

pym/gentoolkit/eshowkw/keywords_content.py

index 3e2551dfd345b937921054c0d4438ac9984df10d..77a68fb0eea7653563216e9fc7244e7ee2feaafa 100644 (file)
@@ -23,10 +23,11 @@ class keywords_content:
                def __listRedundantSlots(self, masks, keywords, slots):
                        """Search for redundant packages walking per keywords for specified slot."""
                        output = list()
+                       zipped = list(zip(masks, keywords, slots))
                        for slot in self.__uniq(slots):
                                ms = list()
                                ks = list()
-                               for m, k, s in zip(masks, keywords, slots):
+                               for m, k, s in zipped:
                                        if slot == s:
                                                ms.append(m)
                                                ks.append(k)
@@ -157,7 +158,7 @@ class keywords_content:
                        self.vartree = port.db[port.root]['vartree'].dbapi
                        self.mysettings = port.config(local_config=False)
                        self.versions = self.__getVersions(packages)
-                       self.masks = map(lambda x: self.__getMaskStatus(x), packages)
+                       self.masks = list(map(lambda x: self.__getMaskStatus(x), packages))
 
        @staticmethod
        def __packages_sort(package_content):