method injector and pickling
I ran into pickle problems when converting some of the classes in our application to make use of David's method injector (as explained in tutorial/doc/quickstart.txt). The problems disappeared when I added the if statement below to disable injection of __module__ and __file__. Proactively I added __init__ and __del__ to the list. Is this a useful modification? Should we update quickstart.txt accordingly? Ralf from scitbx.array_family import flex # see boost/libs/python/doc/tutorial/doc/quickstart.txt boost_python_metaclass = flex.double.__class__ class injector(object): class __metaclass__(boost_python_metaclass): def __init__(self, name, bases, dict): for b in bases: if type(b) not in (self, type): for k,v in dict.items(): if (k in ("__init__", "__del__", "__module__", "__file__")): continue setattr(b,k,v) return type.__init__(self, name, bases, dict) __________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com
participants (1)
-
Ralf W. Grosse-Kunstleve