object persistency, store instances relationship externally
Larry Bates
larry.bates at websafe.com`
Fri Jul 25 07:30:33 EDT 2008
King wrote:
> This is a new test for object persistency. I am trying to store the
> relationship between instances externally.
> It's not working as expected. May be I am doing it in wrong way. Any
> suggestions?
>
>
> import shelve
>
> class attrib(object):
> pass
>
> class node(object):
> def __init__(self):
> self.a = attrib()
> self.b = attrib()
> self.c = attrib()
> self.d = attrib()
>
> a = node()
> #store pair relationship. This relationship is created at run time.
> lst = [[a.a, a.b], [a.c, a.d]]
> #Write objects into file
> shelf = shelve.open('shelve_test_01.txt', writeback=True)
> shelf['node'] = a
> shelf['lst'] = lst
> shelf.sync()
> shelf.close()
>
>
> #Read objects from file
> shelf = shelve.open('shelve_test_01.txt', 'r')
> a = shelf['node']
> lst = shelf['lst']
> print a.a, a.b, a.c, a.d
> #lst does not contains the relationship of object 'a''s attributes,
> instead it's creating new instances
> #of 'attrib' class
> print lst
>
You may want to take a look at Zope's ZODB.
-Larry
More information about the Python-list
mailing list