public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/portage:master commit in: pym/repoman/, pym/portage/dbapi/, pym/portage/dep/, pym/_emerge/
@ 2012-05-30 22:36 Zac Medico
  0 siblings, 0 replies; only message in thread
From: Zac Medico @ 2012-05-30 22:36 UTC (permalink / raw
  To: gentoo-commits

commit:     0b11d51b266e6aae5787423b084c00dd0eafcd2c
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Wed May 30 22:36:31 2012 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Wed May 30 22:36:31 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=0b11d51b

Use any() to optimize intersection operations.

---
 pym/_emerge/depgraph.py       |   34 ++++++++++++++++------------------
 pym/portage/dbapi/__init__.py |   17 ++++++++---------
 pym/portage/dep/__init__.py   |   10 ++++------
 pym/repoman/checks.py         |    2 +-
 4 files changed, 29 insertions(+), 34 deletions(-)

diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index be49b0f..935c376 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 a1c5c56..a90d59e 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 d29a4c4..4cd0813 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 35225c2..94dcfbe 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
 



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2012-05-30 22:36 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-30 22:36 [gentoo-commits] proj/portage:master commit in: pym/repoman/, pym/portage/dbapi/, pym/portage/dep/, pym/_emerge/ Zac Medico

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox