[pypy-commit] pypy py3.5: merge heads

arigo pypy.commits at gmail.com
Wed Oct 12 15:27:38 EDT 2016


Author: Armin Rigo <arigo at tunes.org>
Branch: py3.5
Changeset: r87739:57696c7e37eb
Date: 2016-10-12 21:26 +0200
http://bitbucket.org/pypy/pypy/changeset/57696c7e37eb/

Log:	merge heads

diff --git a/lib-python/3/pickle.py b/lib-python/3/pickle.py
--- a/lib-python/3/pickle.py
+++ b/lib-python/3/pickle.py
@@ -850,6 +850,7 @@
 
     def _pickle_maybe_moduledict(self, obj):
         # save module dictionary as "getattr(module, '__dict__')"
+        from types import ModuleType
         try:
             name = obj['__name__']
             if type(name) is not str:
@@ -1008,7 +1009,6 @@
             return self.save_reduce(type, (...,), obj=obj)
         return self.save_global(obj)
 
-    dispatch[FunctionType] = save_global
     dispatch[type] = save_type
 
 
diff --git a/pypy/interpreter/generator.py b/pypy/interpreter/generator.py
--- a/pypy/interpreter/generator.py
+++ b/pypy/interpreter/generator.py
@@ -47,20 +47,16 @@
 
     def descr__reduce__(self, space):
         from pypy.interpreter.mixedmodule import MixedModule
-        w_mod    = space.getbuiltinmodule('_pickle_support')
-        mod      = space.interp_w(MixedModule, w_mod)
+        w_mod = space.getbuiltinmodule('_pickle_support')
+        mod = space.interp_w(MixedModule, w_mod)
         new_inst = mod.get(self.KIND + '_new')
-        w        = space.wrap
+        w = space.wrap
         if self.frame:
             w_frame = self.frame._reduce_state(space)
         else:
             w_frame = space.w_None
 
-        tup = [
-            w_frame,
-            w(self.running),
-            ]
-
+        tup = [w_frame, w(self.running)]
         return space.newtuple([new_inst, space.newtuple([]),
                                space.newtuple(tup)])
 
@@ -72,6 +68,8 @@
             self.frame = None
             self.space = space
             self.pycode = None
+            self._name = None
+            self._qualname = None
         else:
             frame = instantiate(space.FrameClass)   # XXX fish
             frame.descr__setstate__(space, w_framestate)
diff --git a/pypy/interpreter/test/test_zzpickle_and_slow.py b/pypy/interpreter/test/test_zzpickle_and_slow.py
--- a/pypy/interpreter/test/test_zzpickle_and_slow.py
+++ b/pypy/interpreter/test/test_zzpickle_and_slow.py
@@ -244,9 +244,9 @@
         mod.myclass = myclass
         sys.modules['mod'] = mod
         try:
-            method   = myclass.f
-            pckl     = pickle.dumps(method)
-            result   = pickle.loads(pckl)
+            method = myclass.f
+            pckl = pickle.dumps(method)
+            result = pickle.loads(pckl)
             assert method() == result()
         finally:
             del sys.modules['mod']
@@ -351,6 +351,7 @@
         assert list(result) == [2,3,4]
 
     def test_pickle_generator(self):
+        self.skip_on_cpython()
         import types
         mod = types.ModuleType('mod')
         import sys
@@ -374,6 +375,7 @@
             del sys.modules['mod']
 
     def test_pickle_generator_blk(self):
+        self.skip_on_cpython()
         # same as above but with the generator inside a block
         import types
         mod = types.ModuleType('mod')
@@ -446,6 +448,7 @@
 
 
     def test_pickle_generator_crash(self):
+        self.skip_on_cpython()
         import pickle
 
         def f():
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
@@ -370,7 +370,7 @@
         else:
             return space.newtuple([
                 space.type(self),
-                space.newtuple([])])
+                space.newtuple([space.newtuple([])])])
 
     def descr___setstate__(self, space, w_state):
         self.remaining = space.int_w(w_state)


More information about the pypy-commit mailing list