Author: Matti Picus <[email protected]>
Branch: numpypy_pickle_compat
Changeset: r85727:6d909c810029
Date: 2016-07-15 23:12 -0500
http://bitbucket.org/pypy/pypy/changeset/6d909c810029/
Log: monkeypatch Unpickler.find_class for tests since there is no
numpy.core.multiarray yet
diff --git a/pypy/module/micronumpy/test/test_base.py
b/pypy/module/micronumpy/test/test_base.py
--- a/pypy/module/micronumpy/test/test_base.py
+++ b/pypy/module/micronumpy/test/test_base.py
@@ -3,7 +3,7 @@
class BaseNumpyAppTest(object):
- spaceconfig = dict(usemodules=['micronumpy'])
+ spaceconfig = dict(usemodules=["micronumpy", "struct", "binascii"])
@classmethod
def setup_class(cls):
@@ -14,12 +14,42 @@
else:
from . import dummy_module as numpy
sys.modules['numpy'] = numpy
+ # override Unpickler.find_class
+ def find_class(self, module, name):
+ if (module == 'numpy.core.multiarray' and
+ name == '_reconstruct'):
+ return numpy.ndarray.__new__
+ __import__(module)
+ mod = sys.modules[module]
+ klass = getattr(mod, name)
+ return klass
+
+ from pickle import Unpickler
+ Unpickler.find_class = find_class
+
+ from cPickle import Unpickler
+ Unpickler.find_class = find_class
else:
import os
path = os.path.dirname(__file__) + '/dummy_module.py'
cls.space.appexec([cls.space.wrap(path)], """(path):
import imp
- imp.load_source('numpy', path)
+ import sys
+ numpy = imp.load_source('numpy', path)
+ # override Unpickler.find_class
+ def find_class(self, module, name):
+ if module == 'numpy.core.multiarray' and name ==
'_reconstruct':
+ return numpy.ndarray.__new__
+ __import__(module)
+ mod = sys.modules[module]
+ klass = getattr(mod, name)
+ return klass
+
+ from pickle import Unpickler
+ Unpickler.find_class = find_class
+
+ from cPickle import Unpickler
+ Unpickler.find_class = find_class
""")
cls.w_non_native_prefix = cls.space.wrap(NPY.OPPBYTE)
cls.w_native_prefix = cls.space.wrap(NPY.NATBYTE)
diff --git a/pypy/module/micronumpy/test/test_ndarray.py
b/pypy/module/micronumpy/test/test_ndarray.py
--- a/pypy/module/micronumpy/test/test_ndarray.py
+++ b/pypy/module/micronumpy/test/test_ndarray.py
@@ -202,7 +202,6 @@
class AppTestNumArray(BaseNumpyAppTest):
- spaceconfig = dict(usemodules=["micronumpy", "struct", "binascii"])
def w_CustomIndexObject(self, index):
class CustomIndexObject(object):
@@ -2655,7 +2654,8 @@
class AppTestNumArrayFromBuffer(BaseNumpyAppTest):
- spaceconfig = dict(usemodules=["micronumpy", "array", "mmap"])
+ spaceconfig = dict(usemodules=["micronumpy", "array", "mmap",
+ 'struct', 'binascii'])
def setup_class(cls):
from rpython.tool.udir import udir
@@ -3579,7 +3579,7 @@
class AppTestSupport(BaseNumpyAppTest):
- spaceconfig = {'usemodules': ['micronumpy', 'array']}
+ spaceconfig = {'usemodules': ["micronumpy", "array", 'struct', 'binascii']}
def setup_class(cls):
import struct
@@ -3869,7 +3869,6 @@
class AppTestRecordDtype(BaseNumpyAppTest):
- spaceconfig = dict(usemodules=["micronumpy", "struct", "binascii"])
def test_zeros(self):
from numpy import zeros, void
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit