Hi! I actually now have a (as it seems) working version of my first approach, just using _setObject() etc. which even works recursively. Has this some drawbacks except it looks a bit like a hack due to the call of commit()? I also have the deserialization working and basically it's just a copying between two ZODBs I'd say. On Wed, Jun 11, 2003 at 10:12:46AM -0400, Shane Hathaway wrote:
Christian Scholz wrote:
I then detected the fascades in io.py which I tried to use (dunno if they're thought to be used for such a purpose actually ;-):
root_mapper, conns = createMapper(fspath) ei=ExportImport(root_mapper,conns) ei.exportObject(object)
This is *exactly* the purpose ExportImport is meant for, but it's quite new and unfinished. I'm glad you found it, although it's only in CVS, not in the released version of Ape.
Well, I am looking a bit on the repository and was reading log messages ;-)
Unfortunately this results in an exception
Type: MappingError Error Value: Path keychains require a name
So can maybe somebody point me to the easiest way to serialize an object using the fsmapper (Shane? ;-) ?
You're on the right track. I wonder what went wrong.
I looked into that a bit and in core/io.py line 316 you do return kgen.makeKeychain(event, None, 1) so name is None here as it seems. I just dunno if it's a special case because I was doing something wrong or not ;-)
I am also interested in reading a serialized object from the fs again and writing it to the fs. Also I wonder if I need to delete objects which have been modified before another export or if there's a possibility to just change it).
Ape will assign new OIDs on import, so you don't have to delete objects first.
Well, at least with my first approach I need to do that because I just do a folder._setObject() and this fails then of course.
(and the best would be of course some simple methods for reading/writing a whole directory recursively. I don't know if something like this is already in there somehow or how it works internally.. seems all a bit magic to me ;-)
Again, ExportImport is designed to do this.
Will it also do it recursively? I found out that when I do it via folder._setObject() it will also serialize all content which is quite nice :) What is actually the result of an export? Where in the fs is it stored then? Is the whole path to the object in ZODB is taken ? But thanks for the answer and thanks for Ape! :) -- christian -- COM.lounge http://comlounge.net/ communication & design info@comlounge.net