Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/repoman/, pym/portage/dbapi/, pym/portage/dep/, pym/_emerge/
Date: Wed, 30 May 2012 22:36:54
Message-Id: 1338417391.0b11d51b266e6aae5787423b084c00dd0eafcd2c.zmedico@gentoo
1 commit: 0b11d51b266e6aae5787423b084c00dd0eafcd2c
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Wed May 30 22:36:31 2012 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Wed May 30 22:36:31 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=0b11d51b
7
8 Use any() to optimize intersection operations.
9
10 ---
11 pym/_emerge/depgraph.py | 34 ++++++++++++++++------------------
12 pym/portage/dbapi/__init__.py | 17 ++++++++---------
13 pym/portage/dep/__init__.py | 10 ++++------
14 pym/repoman/checks.py | 2 +-
15 4 files changed, 29 insertions(+), 34 deletions(-)
16
17 diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
18 index be49b0f..935c376 100644
19 --- a/pym/_emerge/depgraph.py
20 +++ b/pym/_emerge/depgraph.py
21 @@ -2390,22 +2390,20 @@ class depgraph(object):
22 except self._unknown_internal_error:
23 return False, myfavorites
24
25 - digraph_set = frozenset(self._dynamic_config.digraph)
26 + digraph_nodes = self._dynamic_config.digraph.nodes
27
28 - if digraph_set.intersection(
29 + if any(x in digraph_nodes for x in
30 self._dynamic_config._needed_unstable_keywords) or \
31 - digraph_set.intersection(
32 + any(x in digraph_nodes for x in
33 self._dynamic_config._needed_p_mask_changes) or \
34 - digraph_set.intersection(
35 + any(x in digraph_nodes for x in
36 self._dynamic_config._needed_use_config_changes) or \
37 - digraph_set.intersection(
38 + any(x in digraph_nodes for x in
39 self._dynamic_config._needed_license_changes) :
40 #We failed if the user needs to change the configuration
41 self._dynamic_config._success_without_autounmask = True
42 return False, myfavorites
43
44 - digraph_set = None
45 -
46 if self._rebuild.trigger_rebuilds():
47 backtrack_infos = self._dynamic_config._backtrack_infos
48 config = backtrack_infos.setdefault("config", {})
49 @@ -3083,7 +3081,7 @@ class depgraph(object):
50
51 untouchable_flags = \
52 frozenset(chain(pkg.use.mask, pkg.use.force))
53 - if untouchable_flags.intersection(
54 + if any(x in untouchable_flags for x in
55 chain(need_enable, need_disable)):
56 continue
57
58 @@ -3133,7 +3131,7 @@ class depgraph(object):
59
60 untouchable_flags = \
61 frozenset(chain(myparent.use.mask, myparent.use.force))
62 - if untouchable_flags.intersection(involved_flags):
63 + if any(x in untouchable_flags for x in involved_flags):
64 continue
65
66 required_use = myparent.metadata.get("REQUIRED_USE")
67 @@ -3758,7 +3756,7 @@ class depgraph(object):
68 new_use, changes = self._dynamic_config._needed_use_config_changes.get(pkg)
69 for ppkg, atom in parent_atoms:
70 if not atom.use or \
71 - not atom.use.required.intersection(changes):
72 + not any(x in atom.use.required for x in changes):
73 continue
74 else:
75 return True
76 @@ -3772,8 +3770,8 @@ class depgraph(object):
77 not check_required_use(required_use, new_use, pkg.iuse.is_valid_flag):
78 return old_use
79
80 - if pkg.use.mask.intersection(new_changes) or \
81 - pkg.use.force.intersection(new_changes):
82 + if any(x in pkg.use.mask for x in new_changes) or \
83 + any(x in pkg.use.force for x in new_changes):
84 return old_use
85
86 self._dynamic_config._needed_use_config_changes[pkg] = (new_use, new_changes)
87 @@ -4004,7 +4002,7 @@ class depgraph(object):
88 missing_disabled = atom.use.missing_disabled.difference(pkg.iuse.all)
89
90 if atom.use.enabled:
91 - if atom.use.enabled.intersection(missing_disabled):
92 + if any(x in atom.use.enabled for x in missing_disabled):
93 use_match = False
94 can_adjust_use = False
95 need_enabled = atom.use.enabled.difference(use)
96 @@ -4013,11 +4011,11 @@ class depgraph(object):
97 if need_enabled:
98 use_match = False
99 if can_adjust_use:
100 - if pkg.use.mask.intersection(need_enabled):
101 + if any(x in pkg.use.mask for x in need_enabled):
102 can_adjust_use = False
103
104 if atom.use.disabled:
105 - if atom.use.disabled.intersection(missing_enabled):
106 + if any(x in atom.use.disabled for x in missing_enabled):
107 use_match = False
108 can_adjust_use = False
109 need_disabled = atom.use.disabled.intersection(use)
110 @@ -4026,8 +4024,8 @@ class depgraph(object):
111 if need_disabled:
112 use_match = False
113 if can_adjust_use:
114 - if pkg.use.force.difference(
115 - pkg.use.mask).intersection(need_disabled):
116 + if any(x in pkg.use.force and x not in
117 + pkg.use.mask for x in need_disabled):
118 can_adjust_use = False
119
120 if not use_match:
121 @@ -5241,7 +5239,7 @@ class depgraph(object):
122 for node in nodes:
123 parents = mygraph.parent_nodes(node,
124 ignore_priority=DepPrioritySatisfiedRange.ignore_soft)
125 - if parents and set(parents).intersection(asap_nodes):
126 + if any(x in asap_nodes for x in parents):
127 selected_nodes = [node]
128 break
129 else:
130
131 diff --git a/pym/portage/dbapi/__init__.py b/pym/portage/dbapi/__init__.py
132 index a1c5c56..a90d59e 100644
133 --- a/pym/portage/dbapi/__init__.py
134 +++ b/pym/portage/dbapi/__init__.py
135 @@ -190,21 +190,19 @@ class dbapi(object):
136 missing_disabled = atom.use.missing_disabled.difference(iuse)
137
138 if atom.use.enabled:
139 - if atom.use.enabled.intersection(missing_disabled):
140 + if any(x in atom.use.enabled for x in missing_disabled):
141 return False
142 need_enabled = atom.use.enabled.difference(use)
143 if need_enabled:
144 - need_enabled = need_enabled.difference(missing_enabled)
145 - if need_enabled:
146 + if any(x not in missing_enabled for x in need_enabled):
147 return False
148
149 if atom.use.disabled:
150 - if atom.use.disabled.intersection(missing_enabled):
151 + if any(x in atom.use.disabled for x in missing_enabled):
152 return False
153 need_disabled = atom.use.disabled.intersection(use)
154 if need_disabled:
155 - need_disabled = need_disabled.difference(missing_disabled)
156 - if need_disabled:
157 + if any(x not in missing_disabled for x in need_disabled):
158 return False
159
160 elif not self.settings.local_config:
161 @@ -215,11 +213,12 @@ class dbapi(object):
162 pkg = _pkg_str(cpv, slot=metadata["SLOT"],
163 repo=metadata.get("repository"))
164 usemask = self.settings._getUseMask(pkg)
165 - if usemask.intersection(atom.use.enabled):
166 + if any(x in usemask for x in atom.use.enabled):
167 return False
168
169 - useforce = self.settings._getUseForce(pkg).difference(usemask)
170 - if useforce.intersection(atom.use.disabled):
171 + useforce = self.settings._getUseForce(pkg)
172 + if any(x in useforce and x not in usemask
173 + for x in atom.use.disabled):
174 return False
175
176 return True
177
178 diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py
179 index d29a4c4..4cd0813 100644
180 --- a/pym/portage/dep/__init__.py
181 +++ b/pym/portage/dep/__init__.py
182 @@ -2081,21 +2081,19 @@ def match_from_list(mydep, candidate_list):
183 missing_disabled = mydep.use.missing_disabled.difference(x.iuse.all)
184
185 if mydep.use.enabled:
186 - if mydep.use.enabled.intersection(missing_disabled):
187 + if any(f in mydep.use.enabled for f in missing_disabled):
188 continue
189 need_enabled = mydep.use.enabled.difference(use.enabled)
190 if need_enabled:
191 - need_enabled = need_enabled.difference(missing_enabled)
192 - if need_enabled:
193 + if any(f not in missing_enabled for f in need_enabled):
194 continue
195
196 if mydep.use.disabled:
197 - if mydep.use.disabled.intersection(missing_enabled):
198 + if any(f in mydep.use.disabled for f in missing_enabled):
199 continue
200 need_disabled = mydep.use.disabled.intersection(use.enabled)
201 if need_disabled:
202 - need_disabled = need_disabled.difference(missing_disabled)
203 - if need_disabled:
204 + if any(f not in missing_disabled for f in need_disabled):
205 continue
206
207 mylist.append(x)
208
209 diff --git a/pym/repoman/checks.py b/pym/repoman/checks.py
210 index 35225c2..94dcfbe 100644
211 --- a/pym/repoman/checks.py
212 +++ b/pym/repoman/checks.py
213 @@ -470,7 +470,7 @@ class InheritEclass(LineCheck):
214 self._inherit = False
215 self._func_call = False
216 if hasattr(self, '_exempt_eclasses'):
217 - self._disabled = self._exempt_eclasses.intersection(pkg.inherited)
218 + self._disabled = any(x in pkg.inherited for x in self._exempt_eclasses)
219 else:
220 self._disabled = False