From: Donatas S. <do...@no...> - 2001-01-25 06:18:30
|
Is there ability using jython and pickle save objects which classes is java classes ? for example: >>> import cPickle >>> from java.awt import Rectangle >>> r=Rectangle(1,1,200,300) >>> f=open("fileout","w") >>> cPickle.dump(r,f) Traceback (innermost last): File "<console>", line 1, in ? PicklingError: Unable to pickle java objects. >>> import pickle >>> pickle.dump(r,f) Traceback (innermost last): File "<console>", line 1, in ? File "/home/donce/jython-2.0/Lib/pickle.py", line 888, in dump File "/home/donce/jython-2.0/Lib/pickle.py", line 100, in dump File "/home/donce/jython-2.0/Lib/pickle.py", line 202, in save File "/home/donce/jython-2.0/Lib/pickle.py", line 421, in save_inst AttributeError: class 'java.awt.Rectangle' has no attribute '__module__' >> Is there something what i missed ? Workaround for this is to use java objects serialization, but if i use python there should be ability to use python serialization. -- Donatas Simkunas |
From: <bc...@wo...> - 2001-01-25 11:17:26
|
[Donatas Simkunas] >Is there ability using jython and pickle save objects which classes is java >classes ? No (as you have dicovered yourself). >for example: > >>>> import cPickle >>>> from java.awt import Rectangle >>>> r=Rectangle(1,1,200,300) >>>> f=open("fileout","w") >>>> cPickle.dump(r,f) >Traceback (innermost last): > File "<console>", line 1, in ? >PicklingError: Unable to pickle java objects. > >>>> import pickle >>>> pickle.dump(r,f) >Traceback (innermost last): > File "<console>", line 1, in ? > File "/home/donce/jython-2.0/Lib/pickle.py", line 888, in dump > File "/home/donce/jython-2.0/Lib/pickle.py", line 100, in dump > File "/home/donce/jython-2.0/Lib/pickle.py", line 202, in save > File "/home/donce/jython-2.0/Lib/pickle.py", line 421, in save_inst >AttributeError: class 'java.awt.Rectangle' has no attribute '__module__' >>> > >Is there something what i missed ? > >Workaround for this is to use java objects serialization, but if i use python >there should be ability to use python serialization. I suppose it is possible to extend the pickle protocol to contain tags for serialized java objects and to use the pickle.memo table to detect and resolve circular graphs amoung the javaobject, but it is not something I will add. Patches will be accepted. regards, finn |
From: Mats W. <ma...@la...> - 2001-01-28 12:43:57
|
>>Is there ability using jython and pickle save objects which classes is java >>classes ? >No (as you have dicovered yourself). I was just trying out building a small app to display, using a JFC/Swing gui, some data pulled out of an existing shelf - here I'm not asking to serialize a Java class. Should this be possible? (I've had no luck so far - the gripe is about a missing anydbm module: would I be likely to be able to pull this over?) Mats |
From: <bc...@wo...> - 2001-01-29 13:50:45
|
[Mats Wichmann] >I was just trying out building a small app to display, using >a JFC/Swing gui, some data pulled out of an existing shelf - >here I'm not asking to serialize a Java class. Should this be >possible? Probably not, but it depends on the which database you used to make the shelf. By making sure that dumbdbm is used both when making the shelf and when reading it, it should be possible. The default way of creating and reading a shelf will not work though (as you have seen yourself). >(I've had no luck so far - the gripe is about a >missing anydbm module: would I be likely to be able to pull >this over?) Instead of using shelve.open(..) try instead: import shelve, dumbdbm shelve.Shelf(dumbdbm.open("file")) regards, finn |