Mercurial > rinkhals
changeset 543:03be16420e8b
Add better support for dicts to simplifier (now handles simple non-integer keys for xmlrpclib).
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Sat, 28 Nov 2009 10:12:00 +0000 |
parents | baf75d5ee50d |
children | 84964077626a |
files | gamelib/serializer.py |
diffstat | 1 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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'):