[pypy-svn] r15063 - pypy/dist/pypy/lib

tismer at codespeak.net tismer at codespeak.net
Mon Jul 25 19:17:41 CEST 2005


Author: tismer
Date: Mon Jul 25 19:17:40 2005
New Revision: 15063

Modified:
   pypy/dist/pypy/lib/marshal.py
Log:
added support for sets

Modified: pypy/dist/pypy/lib/marshal.py
==============================================================================
--- pypy/dist/pypy/lib/marshal.py	(original)
+++ pypy/dist/pypy/lib/marshal.py	Mon Jul 25 19:17:40 2005
@@ -31,7 +31,6 @@
 TYPE_LIST     = '['
 TYPE_DICT     = '{'
 TYPE_CODE     = 'c'
-TYPE_UNKNOWN  = '?'
 TYPE_UNICODE  = 'u'
 TYPE_UNKNOWN  = '?'
 TYPE_SET      = '<'
@@ -192,6 +191,13 @@
     except NameError:
         pass
 
+    def dump_set(self, x):
+        self.f.write(TYPE_SET)
+        self.w_long(len(x))
+        for each in set:
+            self.dump(each)
+    dispatch[TYPE_SET] = dump_set
+    dispatch[TYPE_FROZENSET] = dump_set
 
 class NULL:
     pass
@@ -376,6 +382,17 @@
                         freevars, cellvars)
     dispatch[TYPE_CODE] = load_code
 
+    def load_set(self):
+        n = self.r_long()
+        args = [self.load() for i in range(n)]
+        return set(args)
+    dispatch[TYPE_SET] = load_set
+
+    def load_frozenset(self):
+        n = self.r_long()
+        args = [self.load() for i in range(n)]
+        return frozenset(args)
+    dispatch[TYPE_FROZENSET] = load_frozenset
 
 def dump(x, f):
     Marshaller(f).dump(x)



More information about the Pypy-commit mailing list