On 12/29/11 9:55 AM, lars van gemerden wrote:
Hello,

Can someone help me with the following:

I am using metaclasses to make classes and these classes to make
instances. Now I want to use multiprocessing, which needs to pickle
these instances.

Pickle cannot find the class definitions of the instances. I am trying
to add a line to the __new__ of the metaclass to add the new class
under the right name in the right module/place, so pickle can find
it.

Is this the right approach? Can anyone explain to me where/how to add
these classes for pickle to find and maybe why?

Can you post some code (preferably pared down to a minimal example that fails)? I'm not really clear on what you are doing. I would expect that a class defined by a class statement would usually work fine unless if the metaclass is doing something particularly weird to it.

In any case, you can probably just explicitly register a reduction function for each type using copy_reg.pickle():

http://docs.python.org/library/copy_reg

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to