# path 2 - nested ('item/key/val' nodes) foo.d = {'One': "First dict item", 'Two': 222, 'Three': 333.444} foo.l = [] foo.l.append("first list") foo.l.append(321) foo.l.append(12.34) foo.tup = ("tuple", 123, 444.333) #xml_pickle.setVerbose(1) #print "---PRE-PICKLE---" #printfoo(foo) x1 = xml_pickle.XML_Pickler(foo).dumps() #print x1 #print "---POST-PICKLE---" bar = xml_pickle.XML_Pickler().loads(x1) #printfoo(bar) checkfoo(foo, bar) #x2 = xml_pickle.XML_Pickler(bar).dumps() #print "---XML from original---" #print x1 #print "---XML from copy---" #print x2
""" import gnosis.xml.pickle as xml_pickle import sys, random, pickle from gnosis.xml.pickle.util import setParanoia from . import funcs funcs.set_parser() class foo: pass f = foo() x = xml_pickle.XML_Pickler(f) # create random sequences with known seed values # so we know what to expect after unpickling r1 = random.Random(1234) t1 = r1.random() r1 = random.Random(1234) r2 = random.Random(4567) t2 = r2.random() r2 = random.Random(4567) r3 = random.Random(8910) t3 = r3.random() r3 = random.Random(8910)
def _dump(self, obj): ''' This method overloads the _dump() method of the Bucket base class to provide an XML interface.''' xml_string = xml_pickle.XML_Pickler(obj).dumps() return xml_string
def _load(self, obj_str): ''' This method overloads the _load() method of the Bucket base class to provide an XML interface.''' obj = xml_pickle.XML_Pickler().loads(obj_str) return obj
import gnosis.xml.pickle as xml_pickle class Test: pass o1 = Test() o1.s = "o1" o2 = Test() o2.s = "o2" o1.obj1 = o2 o1.obj2 = o2 o2.obj3 = o1 o2.obj4 = o1 xml = xml_pickle.XML_Pickler(o1).dumps() print xml