Hi, The following sample code is to pickle and unpickle an object. It works fine with CPython, but the unpickling fails in Jython and I receive an error stating that "A" is unsafe to unpickle (even though I believe I have the code to make "A" safe for unpickling). What do I do wrong and how can I fix it? Thanks,
============================================== import sys import cPickle import copy_reg class A(object): __slots__ = ("x","y") __safe_for_unpickling__ = True def __init__(self, a, b): self.x = a self.y = b def __str__(self): return str(self.__getstate__()) def __reduce__(self): return (self.__class__.__name__, self.__getstate__()) def __new__(cls, a, b): return object.__new__(cls) def __getnewargs__(self): return self.__getstate__() def __getstate__(self): return (self.x, self.y) def __setstate__(self, state): (self.x, self.y) = state copy_reg.constructor(A) a = A(5,"abcd") print "Before Pickling: %s"%str(a) mfile = open("dumptest","wb") cPickle.dump(a,mfile,-1) mfile.close() mfile = open("dumptest","rb") m = cPickle.load(mfile) print "After Pickling: %s"%str(m) mfile.close() ============================================== -- http://mail.python.org/mailman/listinfo/python-list