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'):