Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy can't I pickle this object?
    primarykey
    data
    text
    <p>I have a class (below):</p> <pre><code>class InstrumentChange(object): '''This class acts as the DTO object to send instrument change information from the client to the server. See InstrumentChangeTransport below ''' def __init__(self, **kwargs): self.kwargs = kwargs self._changed = None def _method_name(self, text): return text.replace(' ','_').lower() def _what_changed(self): ''' Denotes the column that changed on the instrument returning the column_name of what changed.''' if not self._changed: self._changed = self._method_name(self.kwargs.pop('What Changed')) return self._changed def __getattr__(self, attr): for key in self.kwargs.iterkeys(): if self._method_name(key) == attr: return self.kwargs[key] def __str__(self): return "Instrument:%s" % self.kwargs __repr__ = __str__ what_changed = property(_what_changed) </code></pre> <p>When I run the following test:</p> <pre><code>def test_that_instrumentchangetransport_is_picklable(self): test_dict = {'Updated': 'PAllum', 'Description': 'BR/EUR/BRAZIL/11%/26/06/2017/BD', 'Ask Q': 500, 'Bbg': 'On', 'C Bid': 72.0, 'Benchmark': 'NL/USD/KKB/7.000%/03/11/2009/BD', 'ISIN': 'XS0077157575', 'Bid YTM': 0.0, 'Bid Q': 100, 'C Ask': 72.25, 'Ask YTM': 0.0, 'Bid ASW': 0.0, 'Position': 1280000, 'What Changed': 'C Bid', 'Ask ASW': 0.0} ins_change = InstrumentChangeTransport(**test_dict) assert isinstance(ins_change, InstrumentChangeTransport) # Create a mock filesystem object file = open('testpickle.dat', 'w') file = Mock() pickle.dump(ins_change, file) </code></pre> <p>I get:</p> <pre><code>Traceback (most recent call last): File "c:\python23\lib\site-packages\nose-0.11.0-py2.3.egg\nose\case.py", line 183, in runTest self.test(*self.arg) File "C:\Code\branches\demo\tests\test_framework.py", line 142, in test_that_instrumentchangetransport_is_picklable pickle.dump(ins_change, file) File "C:\Python23\Lib\copy_reg.py", line 83, in _reduce_ex dict = getstate() TypeError: 'NoneType' object is not callable </code></pre> <p>I've looked at the pickle docs, but I don't quite get it.</p> <p>Any ideas?</p> <p>Ben</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload