[pypy-commit] pypy py3.5: Implement W_Deque.add method (reubano & plan_rich)
reubano
pypy.commits at gmail.com
Sun Oct 9 05:34:36 EDT 2016
Author: Reuben Cummings <reubano at gmail.com>
Branch: py3.5
Changeset: r87654:116c76f74d58
Date: 2016-10-09 12:33 +0300
http://bitbucket.org/pypy/pypy/changeset/116c76f74d58/
Log: Implement W_Deque.add method (reubano & plan_rich)
diff --git a/pypy/module/_collections/interp_deque.py b/pypy/module/_collections/interp_deque.py
--- a/pypy/module/_collections/interp_deque.py
+++ b/pypy/module/_collections/interp_deque.py
@@ -175,6 +175,11 @@
raise
self.append(w_obj)
+ def add(self, w_iterable):
+ copied = self.copy(self)
+ copied.extend(w_iterable)
+ return self.space.wrap(copied)
+
def iadd(self, w_iterable):
self.extend(w_iterable)
return self.space.wrap(self)
@@ -484,6 +489,7 @@
__gt__ = interp2app(W_Deque.gt),
__ge__ = interp2app(W_Deque.ge),
__hash__ = None,
+ __add__ = interp2app(W_Deque.add),
__iadd__ = interp2app(W_Deque.iadd),
__getitem__ = interp2app(W_Deque.getitem),
__setitem__ = interp2app(W_Deque.setitem),
@@ -536,7 +542,7 @@
w_self = space.allocate_instance(W_DequeIter, w_subtype)
if not isinstance(w_deque, W_Deque):
raise oefmt(space.w_TypeError, "must be collections.deque, not %T", w_deque)
-
+
W_DequeIter.__init__(space.interp_w(W_DequeIter, w_self), w_deque)
return w_self
@@ -592,7 +598,7 @@
w_self = space.allocate_instance(W_DequeRevIter, w_subtype)
if not isinstance(w_deque, W_Deque):
raise oefmt(space.w_TypeError, "must be collections.deque, not %T", w_deque)
-
+
W_DequeRevIter.__init__(space.interp_w(W_DequeRevIter, w_self), w_deque)
return w_self
More information about the pypy-commit
mailing list