1. zope.copypastemove pickles/unpickles the blob object without calling it's __setstate__ method. This is unexpected from the Blob class and I can't see immediately what happens in pickle/cPickle that prevents this.
2. The blob class uses its object id and a temporary filename to maintain its state. A simple pickle/unpickle/store routine will turn it into an empty blob. I don't see an obvious solution on this either. It sounds like the blob class would have to get a lot smarter to support this use case.
There are two actual problems on this:
1. zope.copypastemove pickles/unpickles the blob object without calling it's __setstate__ method. This is unexpected from the Blob class and I can't see immediately what happens in pickle/cPickle that prevents this. unpickle/ store routine will turn it into an empty blob. I don't see an obvious solution on this either. It sounds like the blob class would have to get a lot smarter to support this use case.
2. The blob class uses its object id and a temporary filename to maintain its state. A simple pickle/
I'm unassigning myself for now.