# HG changeset patch # User Simon Cross # Date 1259403120 0 # Node ID 03be16420e8b272a8773ee3409abe1076b9f31a1 # Parent baf75d5ee50d4bb33ee509799ebd740f083b85db Add better support for dicts to simplifier (now handles simple non-integer keys for xmlrpclib). diff -r baf75d5ee50d -r 03be16420e8b gamelib/serializer.py --- a/gamelib/serializer.py Sat Nov 28 10:11:57 2009 +0000 +++ b/gamelib/serializer.py Sat Nov 28 10:12:00 2009 +0000 @@ -28,6 +28,10 @@ refs.add(refid) value = { 'set': [simplify(x, refs) for x in item] } value['refid'] = refid + elif type(item) is dict: + refs.add(refid) + value = { 'dict': [(simplify(k, refs), simplify(v, refs)) for k, v in item.iteritems()] } + value['refid'] = refid elif type(item) is tuple: refs.add(refid) value = { 'tuple': tuple([simplify(x, refs) for x in item]) } @@ -58,6 +62,10 @@ item = set() refs[refid] = item item.update(unsimplify(x, refs) for x in value['set']) + elif value.has_key('dict'): + item = {} + refs[refid] = item + item.update(dict((unsimplify(k, refs), unsimplify(v, refs)) for k, v in value['dict'])) elif value.has_key('tuple'): item = tuple([unsimplify(x, refs) for x in value['tuple']]) elif value.has_key('none'):