[Zope] BoboPOS and nested dictionaries
   
    Jeff Bauer
     
    jeffbauer@bigfoot.com
       
    Sun, 14 Feb 1999 11:34:10 -0600
    
    
  
Hi all.
I'm having a slight problem with BoboPOS and nested dictionaries.
BoboPOS 2.0.2.  The problem is that changes to a nested dictionary 
attribute are not being saved.
Here are two of my workarounds, discovered just this morning.
    # Dictionary deletions not saved.  Workaround: Delete
    # the dictionary item, make a shallow copy to a new
    # dict, and reassign the object attribute to it.
    del self.treatment_orders[treatment]
    d = {}
    for k,v in self.treatment_orders.items():
        d[k] = v
    self.treatment_orders = d
Next, to assign a dictionary sub-element, I would usually
perform the following kind of operation:
    self.treatment_orders[treatment]['FREQ'] = frequency
However, the changes aren't saved unless I borrow Python's
deepcopy feature, and reassign the attribute to the dict
copy.
    from copy import deepcopy
    d = deepcopy(self.treatment_orders)
    d[treatment]['FREQ'] = frequency
    self.treatment_orders = d
Before I spend more time on this issue, I'd be interested
in learning if there are any known problems with nested
dictionaries in BoboPOS.  Environment: Python 1.5.2a2, linux2
Best regards,
Jeff Bauer
Rubicon, Inc.