4 'A simple namespace object.'
5 def __init__(self, d = {}):
6 'd is the dictionary to update my __dict__ with.'
7 self.__dict__.update(d)
11 Given a tree of lists/dicts, perform a deep traversal to transform all the
15 return struct((k, dicts2struct(v)) for k,v in x.iteritems())
17 return [dicts2struct(v) for v in x]
22 "Utility to that emulates with Python 2.5's `with closing(rsrc)`."
23 try: return func(rsrc)
26 class common_tests(unittest.TestCase):
27 def test_dicts2structs(self):
30 'dict': { 'atom': 'atom', 'list': [1,2,3] },
31 'list': [ 'atom', {'key': 'value'} ]
33 structs = dicts2struct(dicts)
34 self.assertEqual(structs.atom, dicts['atom'])
35 self.assertEqual(structs.dict.atom, dicts['dict']['atom'])
36 self.assertEqual(structs.dict.list, dicts['dict']['list'])
37 self.assertEqual(structs.list[0], dicts['list'][0])
38 self.assertEqual(structs.list[1].key, dicts['list'][1]['key'])
40 if __name__ == '__main__':