Author: Reuben Cummings <[email protected]>
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
 
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to