On Jun 13, 2009, at 5:52 PM, Kenny Daily wrote:
> > First, that would be great to use the Graph instead, so I can query > it. It works the same when adding/binding attributes? I know the > difference in constructing it. Yes, you save the schema of the Graph to worldbase in the same basic way as for a Mapping, just using a metabase.OneToManyRelation schema object instead of OneToOneRelation... > > > BUT I tried to add the close() and still get the same problem. So > where do I add the close call? Immediately after my for... loop, after > adding the mapping resource to the worldbase, or before/after the > worldbase.commit()? I actually am getting an EOFerror, which to me > does indicate that a buffer was not flushed to a file. I just noticed that you are using mode 'ww' which means that the Mapping will not only be opened initially in write mode, it will also be opened in write mode whenever it is unpickled in the future. Is that really what you want? Given that you're having trouble reopening this Mapping successfully, I think you ought to switch to 'nr', which means - initially, open in mode 'n', creating a completely new shelve file; if an existing shelve file is present, its contents will be deleted, so you know you are starting from scratch. - when the Mapping is unpickled in the future it will open in mode 'r', i.e. read-only. That way the contents should remain exactly what they were when you first created them. I am wondering whether some side-effects of your first attempt to create this shelve file without closing it may be persisting and screwing up subsequent attempts to write it correctly. (I know that on Windows this could cause long-lasting mayhem). If I were you, I'd delete the existing file and start over from scratch, maybe with a different filename just to be on the paranoid side. A second, more fundamental piece of advice for getting things working with worldbase: do this in two steps. It seems like you're trying to accomplish two steps in one script: 1. create the Mapping and save it successfully to disk; 2. add this resource to worldbase. Since your script proceeds directly to step 2 without first checking that step 1 actually worked, this makes it much harder to debug. I suggest that you just try to do step 1, then check that it succeeded by reopening it in read-only mode, and verifying that its contents are what you'd expect. Once you are able to re-open that Mapping read- only whenever you want, adding it to worldbase should be trivial. -- Chris --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pygr-dev" group. To post to this group, send email to pygr-dev@googlegroups.com To unsubscribe from this group, send email to pygr-dev+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/pygr-dev?hl=en -~----------~----~----~----~------~----~------~--~---