<div dir="ltr">A question i got from Wing when i contacted them about the test case below. Can someone help John, I am not really the right guy.<div><br></div><div>Cheers, Lars</div><div><br></div><div>PS:  I'll also put the error trace below. <br>

<br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Wing IDE Support</b> <span dir="ltr"><<a href="mailto:support@wingware.com" target="_blank">support@wingware.com</a>></span><br>

Date: Tue, Oct 22, 2013 at 9:04 PM<br>Subject: Re: error during pickling<br>To: lars van Gemerden <<a href="mailto:lars@rational-it.com" target="_blank">lars@rational-it.com</a>><br><br><br><div>On 10/22/13 1:54 PM, lars van Gemerden wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Hi John,<br>
<br>
Did some digging in the trace and have an example now:<br>
<br>
------------------------------<u></u>------------------------------<br>
import pickle<br>
<br>
class Test(object):<br>
     def __init__(self):<br>
         self.func = self.func2<br>
     def func2(self):<br>
         print "something"<br></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


if __name__ == '__main__':<br>
     t = Test()<br>
     t.func()<br>
     s = pickle.dumps(t)<br>
     print s<br>
</blockquote>
<br></div>
Is stackless supposed to pickle the globals when pickling an instance like this?  I'm just wondering if things are working as designed.<br>
<br>
Thanks,<br>
<br>
John<br>
<br>
</div>trace:<div><br></div><div><div>pickle.PicklingError: Can't pickle <built-in function wingdb_import_hook>: it's not found as tdbgtracer27stackless.wingdb_import_hook</div><div>File "d:\Documents\Code\python\floware\toolshed\tests\stackless_error_test.py", line 12, in <module></div>

<div>  s = pickle.dumps(t)</div><div>File "C:\Python27\lib\pickle.py", line 1411, in dumps</div><div>  Pickler(file, protocol).dump(obj)</div><div>File "C:\Python27\lib\pickle.py", line 231, in dump</div>

<div>  self.save(obj)</div><div>File "C:\Python27\lib\pickle.py", line 338, in save</div><div>  self.save_reduce(obj=obj, *rv)</div><div>File "C:\Python27\lib\pickle.py", line 426, in save_reduce</div>

<div>  save(state)</div><div>File "C:\Python27\lib\pickle.py", line 293, in save</div><div>  f(self, obj) # Call unbound method with explicit self</div><div>File "C:\Python27\lib\pickle.py", line 661, in save_dict</div>

<div>  self._batch_setitems(obj.iteritems())</div><div>File "C:\Python27\lib\pickle.py", line 675, in _batch_setitems</div><div>  save(v)</div><div>File "C:\Python27\lib\pickle.py", line 338, in save</div>

<div>  self.save_reduce(obj=obj, *rv)</div><div>File "C:\Python27\lib\pickle.py", line 408, in save_reduce</div><div>  save(args)</div><div>File "C:\Python27\lib\pickle.py", line 293, in save</div><div>

  f(self, obj) # Call unbound method with explicit self</div><div>File "C:\Python27\lib\pickle.py", line 569, in save_tuple</div><div>  save(element)</div><div>File "C:\Python27\lib\pickle.py", line 293, in save</div>

<div>  f(self, obj) # Call unbound method with explicit self</div><div>File "C:\Python27\lib\pickle.py", line 802, in save_function</div><div>  return self.save_reduce(obj=obj, *rv)</div><div>File "C:\Python27\lib\pickle.py", line 426, in save_reduce</div>

<div>  save(state)</div><div>File "C:\Python27\lib\pickle.py", line 293, in save</div><div>  f(self, obj) # Call unbound method with explicit self</div><div>File "C:\Python27\lib\pickle.py", line 569, in save_tuple</div>

<div>  save(element)</div><div>File "C:\Python27\lib\pickle.py", line 293, in save</div><div>  f(self, obj) # Call unbound method with explicit self</div><div>File "C:\Python27\lib\pickle.py", line 651, in save_dict</div>

<div>  return self.save_reduce(*modict_saver)</div><div>File "C:\Python27\lib\pickle.py", line 408, in save_reduce</div><div>  save(args)</div><div>File "C:\Python27\lib\pickle.py", line 293, in save</div>

<div>  f(self, obj) # Call unbound method with explicit self</div><div>File "C:\Python27\lib\pickle.py", line 569, in save_tuple</div><div>  save(element)</div><div>File "C:\Python27\lib\pickle.py", line 338, in save</div>

<div>  self.save_reduce(obj=obj, *rv)</div><div>File "C:\Python27\lib\pickle.py", line 407, in save_reduce</div><div>  save(func)</div><div>File "C:\Python27\lib\pickle.py", line 293, in save</div><div>

  f(self, obj) # Call unbound method with explicit self</div><div>File "C:\Python27\lib\pickle.py", line 760, in save_global</div><div>  (obj, module, name))</div><br clear="all"><div><br></div>-- <br>====================================<br>

Lars van Gemerden<br><a href="mailto:lars@rational-it.com" target="_blank">lars@rational-it.com</a><br><a href="tel:%2B31%206%2026%2088%2055%2039" value="+31626885539" target="_blank">+31 6 26 88 55 39</a><br>====================================
</div></div></div>