From 1aa2e196a062034ae82936859d0d6d21663a33d3 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 23 Feb 2009 18:12:19 +0000 Subject: In config.setcpv(), increase efficiency by filtering USE with IUSE before calculating USE_EXPAND variables. Also use a generator expression instead of a list comprehension in the USE_EXPAND generation code. svn path=/main/trunk/; revision=12697 --- pym/portage/__init__.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'pym') diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index cf44ef92b..90a304415 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -2119,6 +2119,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(). @@ -2126,8 +2128,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. @@ -2189,9 +2191,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): """ -- cgit v1.2.3-1-g7c22