[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