"""Marshal module written in Python. This doesn't marshal code objects, but supports everything else. Performance or careful error checking is not an issue. """ import cStringIO from _marshal import Marshaller, Unmarshaller def dump(x, f, version=2): Marshaller(f, version).dump(x) # XXX - added just for debugging. remove! def load(f, debug=False): u = Unmarshaller(f) if debug: u._debug() return u.load() def dumps(x, version=2): f = cStringIO.StringIO() dump(x, f, version) return f.getvalue() def loads(s): f = cStringIO.StringIO(s) return load(f)