I have an enum in my c++ library. In fact I have a crap load of them. 169 to be exact.
I need them to be pickle-able. The enum_ object does not have a .def_pickle function, so I cannot use the pickle suite. I tried to just up and pickle it but that does not work either. enum box {cardboard, cereal, toy}; BOOST_PYTHON_MODULE(busybox) { enum_<box>("box") .value("cardboard",cardboard ) .value("cereal",cereal ) .value("toy", toy); } C:\Documents and Settings\mscouten>cd C:\tt-dev\manticore\ C:\tt-dev\manticore>call setpath.bat Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import pickle, busybox >>> >>> b = busybox.box.toy >>> >>> bs = pickle.dumps(b) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python25\lib\pickle.py", line 1366, in dumps Pickler(file, protocol).dump(obj) File "C:\Python25\lib\pickle.py", line 224, in dump self.save(obj) File "C:\Python25\lib\pickle.py", line 331, in save self.save_reduce(obj=obj, *rv) File "C:\Python25\lib\pickle.py", line 401, in save_reduce save(args) File "C:\Python25\lib\pickle.py", line 286, in save f(self, obj) # Call unbound method with explicit self File "C:\Python25\lib\pickle.py", line 562, in save_tuple save(element) File "C:\Python25\lib\pickle.py", line 286, in save f(self, obj) # Call unbound method with explicit self File "C:\Python25\lib\pickle.py", line 748, in save_global (obj, module, name)) pickle.PicklingError: Can't pickle <class '__main__.busybox.box'>: it's not found as __main__.busybox.box >>>
_______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig