[pypy-commit] pypy default: move any and all to applevel
gutworth
noreply at buildbot.pypy.org
Wed Jun 8 01:18:24 CEST 2011
Author: Benjamin Peterson <benjamin at python.org>
Branch:
Changeset: r44821:9b83e8473960
Date: 2011-06-07 18:19 -0500
http://bitbucket.org/pypy/pypy/changeset/9b83e8473960/
Log: move any and all to applevel
diff --git a/pypy/module/__builtin__/__init__.py b/pypy/module/__builtin__/__init__.py
--- a/pypy/module/__builtin__/__init__.py
+++ b/pypy/module/__builtin__/__init__.py
@@ -31,6 +31,8 @@
'apply' : 'app_functional.apply',
'sorted' : 'app_functional.sorted',
+ 'any' : 'app_functional.any',
+ 'all' : 'app_functional.all',
'vars' : 'app_inspect.vars',
'dir' : 'app_inspect.dir',
@@ -95,8 +97,6 @@
'range' : 'functional.range_int',
'xrange' : 'functional.W_XRange',
'enumerate' : 'functional.W_Enumerate',
- 'all' : 'functional.all',
- 'any' : 'functional.any',
'min' : 'functional.min',
'max' : 'functional.max',
'sum' : 'functional.sum',
diff --git a/pypy/module/__builtin__/app_functional.py b/pypy/module/__builtin__/app_functional.py
--- a/pypy/module/__builtin__/app_functional.py
+++ b/pypy/module/__builtin__/app_functional.py
@@ -16,3 +16,21 @@
sorted_lst = list(lst)
sorted_lst.sort(cmp, key, reverse)
return sorted_lst
+
+def any(seq):
+ """any(iterable) -> bool
+
+Return True if bool(x) is True for any x in the iterable."""
+ for x in seq:
+ if x:
+ return True
+ return False
+
+def all(seq):
+ """all(iterable) -> bool
+
+Return True if bool(x) is True for all values x in the iterable."""
+ for x in seq:
+ if not x:
+ return False
+ return True
diff --git a/pypy/module/__builtin__/functional.py b/pypy/module/__builtin__/functional.py
--- a/pypy/module/__builtin__/functional.py
+++ b/pypy/module/__builtin__/functional.py
@@ -452,40 +452,6 @@
w_empty = space.call_function(w_str_type)
return space.call_method(w_empty, "join", space.newlist(result_w))
-def all(space, w_S):
- """all(iterable) -> bool
-
-Return True if bool(x) is True for all values x in the iterable."""
- w_iter = space.iter(w_S)
- while True:
- try:
- w_next = space.next(w_iter)
- except OperationError, e:
- if not e.match(space, space.w_StopIteration):
- raise # re-raise other app-level exceptions
- break
- if not space.is_true(w_next):
- return space.w_False
- return space.w_True
-
-
-def any(space, w_S):
- """any(iterable) -> bool
-
-Return True if bool(x) is True for any x in the iterable."""
- w_iter = space.iter(w_S)
- while True:
- try:
- w_next = space.next(w_iter)
- except OperationError, e:
- if not e.match(space, space.w_StopIteration):
- raise # re-raise other app-level exceptions
- break
- if space.is_true(w_next):
- return space.w_True
- return space.w_False
-
-
class W_Enumerate(Wrappable):
def __init__(self, w_iter, w_start):
More information about the pypy-commit
mailing list