summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-05-30 15:36:31 -0700
committerZac Medico <zmedico@gentoo.org>2012-05-30 15:36:31 -0700
commit0b11d51b266e6aae5787423b084c00dd0eafcd2c (patch)
tree68d7ae38a4db24d06f91722ea47c3779fee165da /pym
parentb6fa4dbba0297226ade42ad86b8ca95a5764e34b (diff)
downloadportage-0b11d51b266e6aae5787423b084c00dd0eafcd2c.tar.gz
portage-0b11d51b266e6aae5787423b084c00dd0eafcd2c.tar.bz2
portage-0b11d51b266e6aae5787423b084c00dd0eafcd2c.zip
Use any() to optimize intersection operations.
Diffstat (limited to 'pym')
-rw-r--r--pym/_emerge/depgraph.py34
-rw-r--r--pym/portage/dbapi/__init__.py17
-rw-r--r--pym/portage/dep/__init__.py10
-rw-r--r--pym/repoman/checks.py2
4 files changed, 29 insertions, 34 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index be49b0f70..935c37642 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -2390,22 +2390,20 @@ class depgraph(object):
except self._unknown_internal_error:
return False, myfavorites
- digraph_set = frozenset(self._dynamic_config.digraph)
+ digraph_nodes = self._dynamic_config.digraph.nodes
- if digraph_set.intersection(
+ if any(x in digraph_nodes for x in
self._dynamic_config._needed_unstable_keywords) or \
- digraph_set.intersection(
+ any(x in digraph_nodes for x in
self._dynamic_config._needed_p_mask_changes) or \
- digraph_set.intersection(
+ any(x in digraph_nodes for x in
self._dynamic_config._needed_use_config_changes) or \
- digraph_set.intersection(
+ any(x in digraph_nodes for x in
self._dynamic_config._needed_license_changes) :
#We failed if the user needs to change the configuration
self._dynamic_config._success_without_autounmask = True
return False, myfavorites
- digraph_set = None
-
if self._rebuild.trigger_rebuilds():
backtrack_infos = self._dynamic_config._backtrack_infos
config = backtrack_infos.setdefault("config", {})
@@ -3083,7 +3081,7 @@ class depgraph(object):
untouchable_flags = \
frozenset(chain(pkg.use.mask, pkg.use.force))
- if untouchable_flags.intersection(
+ if any(x in untouchable_flags for x in
chain(need_enable, need_disable)):
continue
@@ -3133,7 +3131,7 @@ class depgraph(object):
untouchable_flags = \
frozenset(chain(myparent.use.mask, myparent.use.force))
- if untouchable_flags.intersection(involved_flags):
+ if any(x in untouchable_flags for x in involved_flags):
continue
required_use = myparent.metadata.get("REQUIRED_USE")
@@ -3758,7 +3756,7 @@ class depgraph(object):
new_use, changes = self._dynamic_config._needed_use_config_changes.get(pkg)
for ppkg, atom in parent_atoms:
if not atom.use or \
- not atom.use.required.intersection(changes):
+ not any(x in atom.use.required for x in changes):
continue
else:
return True
@@ -3772,8 +3770,8 @@ class depgraph(object):
not check_required_use(required_use, new_use, pkg.iuse.is_valid_flag):
return old_use
- if pkg.use.mask.intersection(new_changes) or \
- pkg.use.force.intersection(new_changes):
+ if any(x in pkg.use.mask for x in new_changes) or \
+ any(x in pkg.use.force for x in new_changes):
return old_use
self._dynamic_config._needed_use_config_changes[pkg] = (new_use, new_changes)
@@ -4004,7 +4002,7 @@ class depgraph(object):
missing_disabled = atom.use.missing_disabled.difference(pkg.iuse.all)
if atom.use.enabled:
- if atom.use.enabled.intersection(missing_disabled):
+ if any(x in atom.use.enabled for x in missing_disabled):
use_match = False
can_adjust_use = False
need_enabled = atom.use.enabled.difference(use)
@@ -4013,11 +4011,11 @@ class depgraph(object):
if need_enabled:
use_match = False
if can_adjust_use:
- if pkg.use.mask.intersection(need_enabled):
+ if any(x in pkg.use.mask for x in need_enabled):
can_adjust_use = False
if atom.use.disabled:
- if atom.use.disabled.intersection(missing_enabled):
+ if any(x in atom.use.disabled for x in missing_enabled):
use_match = False
can_adjust_use = False
need_disabled = atom.use.disabled.intersection(use)
@@ -4026,8 +4024,8 @@ class depgraph(object):
if need_disabled:
use_match = False
if can_adjust_use:
- if pkg.use.force.difference(
- pkg.use.mask).intersection(need_disabled):
+ if any(x in pkg.use.force and x not in
+ pkg.use.mask for x in need_disabled):
can_adjust_use = False
if not use_match:
@@ -5241,7 +5239,7 @@ class depgraph(object):
for node in nodes:
parents = mygraph.parent_nodes(node,
ignore_priority=DepPrioritySatisfiedRange.ignore_soft)
- if parents and set(parents).intersection(asap_nodes):
+ if any(x in asap_nodes for x in parents):
selected_nodes = [node]
break
else:
diff --git a/pym/portage/dbapi/__init__.py b/pym/portage/dbapi/__init__.py
index a1c5c5674..a90d59e77 100644
--- a/pym/portage/dbapi/__init__.py
+++ b/pym/portage/dbapi/__init__.py
@@ -190,21 +190,19 @@ class dbapi(object):
missing_disabled = atom.use.missing_disabled.difference(iuse)
if atom.use.enabled:
- if atom.use.enabled.intersection(missing_disabled):
+ if any(x in atom.use.enabled for x in missing_disabled):
return False
need_enabled = atom.use.enabled.difference(use)
if need_enabled:
- need_enabled = need_enabled.difference(missing_enabled)
- if need_enabled:
+ if any(x not in missing_enabled for x in need_enabled):
return False
if atom.use.disabled:
- if atom.use.disabled.intersection(missing_enabled):
+ if any(x in atom.use.disabled for x in missing_enabled):
return False
need_disabled = atom.use.disabled.intersection(use)
if need_disabled:
- need_disabled = need_disabled.difference(missing_disabled)
- if need_disabled:
+ if any(x not in missing_disabled for x in need_disabled):
return False
elif not self.settings.local_config:
@@ -215,11 +213,12 @@ class dbapi(object):
pkg = _pkg_str(cpv, slot=metadata["SLOT"],
repo=metadata.get("repository"))
usemask = self.settings._getUseMask(pkg)
- if usemask.intersection(atom.use.enabled):
+ if any(x in usemask for x in atom.use.enabled):
return False
- useforce = self.settings._getUseForce(pkg).difference(usemask)
- if useforce.intersection(atom.use.disabled):
+ useforce = self.settings._getUseForce(pkg)
+ if any(x in useforce and x not in usemask
+ for x in atom.use.disabled):
return False
return True
diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py
index d29a4c4a1..4cd081310 100644
--- a/pym/portage/dep/__init__.py
+++ b/pym/portage/dep/__init__.py
@@ -2081,21 +2081,19 @@ def match_from_list(mydep, candidate_list):
missing_disabled = mydep.use.missing_disabled.difference(x.iuse.all)
if mydep.use.enabled:
- if mydep.use.enabled.intersection(missing_disabled):
+ if any(f in mydep.use.enabled for f in missing_disabled):
continue
need_enabled = mydep.use.enabled.difference(use.enabled)
if need_enabled:
- need_enabled = need_enabled.difference(missing_enabled)
- if need_enabled:
+ if any(f not in missing_enabled for f in need_enabled):
continue
if mydep.use.disabled:
- if mydep.use.disabled.intersection(missing_enabled):
+ if any(f in mydep.use.disabled for f in missing_enabled):
continue
need_disabled = mydep.use.disabled.intersection(use.enabled)
if need_disabled:
- need_disabled = need_disabled.difference(missing_disabled)
- if need_disabled:
+ if any(f not in missing_disabled for f in need_disabled):
continue
mylist.append(x)
diff --git a/pym/repoman/checks.py b/pym/repoman/checks.py
index 35225c229..94dcfbea8 100644
--- a/pym/repoman/checks.py
+++ b/pym/repoman/checks.py
@@ -470,7 +470,7 @@ class InheritEclass(LineCheck):
self._inherit = False
self._func_call = False
if hasattr(self, '_exempt_eclasses'):
- self._disabled = self._exempt_eclasses.intersection(pkg.inherited)
+ self._disabled = any(x in pkg.inherited for x in self._exempt_eclasses)
else:
self._disabled = False