In config.setcpv(), increase efficiency by filtering USE with IUSE before
authorZac Medico <zmedico@gentoo.org>
Wed, 11 Mar 2009 06:15:37 +0000 (06:15 -0000)
committerZac Medico <zmedico@gentoo.org>
Wed, 11 Mar 2009 06:15:37 +0000 (06:15 -0000)
calculating USE_EXPAND variables. Also use a generator expression instead
of a list comprehension in the USE_EXPAND generation code. (trunk r12697)

svn path=/main/branches/2.1.6/; revision=12954

pym/portage/__init__.py

index e6bd952592e818bf0200f8289f9f17fd5ae8dd43..b4291cfd7d8208bc2959cfd34c1c488fc46f91af 100644 (file)
@@ -2109,6 +2109,8 @@ class config(object):
                                if ebuild_force_test:
                                        self.usemask.discard("test")
 
+               use.difference_update([x for x in use if x not in iuse_implicit])
+
                # Use the calculated USE flags to regenerate the USE_EXPAND flags so
                # that they are consistent. For optimal performance, use slice
                # comparison instead of startswith().
@@ -2116,8 +2118,8 @@ class config(object):
                for var in use_expand:
                        prefix = var.lower() + "_"
                        prefix_len = len(prefix)
-                       expand_flags = set([ x[prefix_len:] for x in use \
-                               if x[:prefix_len] == prefix ])
+                       expand_flags = set( x[prefix_len:] for x in use \
+                               if x[:prefix_len] == prefix )
                        var_split = self.get(var, "").split()
                        # Preserve the order of var_split because it can matter for things
                        # like LINGUAS.
@@ -2179,9 +2181,7 @@ class config(object):
                # attribute since we still want to be able to see global USE
                # settings for things like emerge --info.
 
-               self.configdict["pkg"]["PORTAGE_USE"] = " ".join(sorted(
-                       x for x in use if \
-                       x in iuse_implicit))
+               self.configdict["pkg"]["PORTAGE_USE"] = " ".join(sorted(use))
 
        def _get_implicit_iuse(self):
                """