[IPython-dev] ipython1 saw exception transport and raising
Brian Granger
ellisonbg.net at gmail.com
Thu Jul 12 22:51:04 EDT 2007
Doug,
Can you do an svn up and try again. You patch made it pretty clear
what the problem was. However, I did make some changes to make sure
that the new type and value are something other than a string. Here
is what I committed:
def packageFailure(f):
"""Clean and pickle a failure preappending the string FAILURE:"""
f.cleanFailure()
# This is sometimes helpful in debugging
#f.raiseException()
try:
pString = pickle.dumps(f, 2)
except pickle.PicklingError:
# Certain types of exceptions are not pickleable, for instance ones
# from Boost.Python. We try to wrap them in something that is
f.type = UnpickleableException
f.value = UnpickleableException(str(f.type) + ": " + str(f.value))
pString = pickle.dumps(f, 2)
return 'FAILURE:' + pString
Let me know how this works - I don't have Boost.Python installed so I
can't reproduce your situation exactly. I can modify it further if
needed.
Brian
On 7/9/07, Doug Jones <dfj225 at gmail.com> wrote:
> Hello IPython devs,
>
> I've been testing the ipython1 saw branch and was testing some of the
> new exception handling code. All in all, it seems to be working very
> well, but I have come across one quirk that affects my code. Part of
> the system that I use involves C++ code wrapped using Boost.Python.
> For some reason, it seems that Boost.Python likes to create its own
> classes for exceptions which aren't able to be pickled. So, whenever
> one of these exceptions gets generated, I get a traceback about failed
> pickling instead of the actual error that was generated.
>
> I cooked up a little change that makes these types of errors able to
> be serialized. I'm not too familiar with the internals of IPython1, so
> there might be a much better way to do this, but at the very least I
> hope my code serves as a good indication of where the problem lies.
>
> Thanks,
> ~doug
>
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://lists.ipython.scipy.org/mailman/listinfo/ipython-dev
>
>
>
More information about the IPython-dev
mailing list