From bd5617020a50bcd08269330638d64078c1b30b71 Mon Sep 17 00:00:00 2001
From: Guido Trotter <ultrotter@google.com>
Date: Mon, 15 Mar 2010 11:37:38 +0000
Subject: [PATCH] Only override any and all if not defined

If any or all are already defined (because we're using a new version of
python) just link them inside "utils" rather than redefining them.

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
---
 lib/utils.py | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/lib/utils.py b/lib/utils.py
index e6a191e37..edc92b4f9 100644
--- a/lib/utils.py
+++ b/lib/utils.py
@@ -1477,18 +1477,24 @@ def FirstFree(seq, base=0):
   return None
 
 
-def all(seq, pred=bool): # pylint: disable-msg=W0622
-  "Returns True if pred(x) is True for every element in the iterable"
-  for _ in itertools.ifilterfalse(pred, seq):
-    return False
-  return True
+try:
+  all = all # pylint: disable-msg=W0622
+except NameError:
+  def all(seq, pred=bool): # pylint: disable-msg=W0622
+    "Returns True if pred(x) is True for every element in the iterable"
+    for _ in itertools.ifilterfalse(pred, seq):
+      return False
+    return True
 
 
-def any(seq, pred=bool): # pylint: disable-msg=W0622
-  "Returns True if pred(x) is True for at least one element in the iterable"
-  for _ in itertools.ifilter(pred, seq):
-    return True
-  return False
+try:
+  any = any # pylint: disable-msg=W0622
+except NameError:
+  def any(seq, pred=bool): # pylint: disable-msg=W0622
+    "Returns True if pred(x) is True for at least one element in the iterable"
+    for _ in itertools.ifilter(pred, seq):
+      return True
+    return False
 
 
 def partition(seq, pred=bool): # # pylint: disable-msg=W0622
-- 
GitLab