Exemplo n.º 1
0
    def pack(cls, data):
        from util.json import pydumps

        d = pydumps(data).encode("z")
        v = cls.__VERSION
        log.info("packing version %d of %s", v, cls.__name__)
        return pack("!I", v) + d
Exemplo n.º 2
0
 def test_serialization(self):
     values = [5, 'foo', u'bar', (), (1,), (1,2), [], [1], [1,2],
               set(), set('abc'), set((1,2,3)), set(((3,), (), '')),
               {}, {1:2}, {'a':1}, {'1': 1}, {4.3: ''}, 4.3, {'4.3':5},
               {u'234':54}, {1:u'342'}, {1:'abc'}, {1:2,3:4,5:6},
               {'foo': set((1,2.3,'3', (), (1,2)))},
               frozenset('123'),None, {None:None},
               {True:False},u'__str__foo',
               {u'__tuple__':u'foo'}, {u'__tuple__':'foo'},
               {'__tuple__':u'foo'}, {'__tuple__':u'foo'},
               ['__tuple__'],'__True__',u'__None__',
               ]
     for value in values + [values]:
         dataout = pyloads(pydumps(value))
         self.assertEquals(value, dataout)
         self.assertEqual(type(value), type(dataout))
Exemplo n.º 3
0
 def backup_blobs(self, dir):
     pth = path(dir)
     from util.json import pydumps
     from time import time
     for name in ['profile', 'buddylist', 'notifications', 'prefs', 'statuses', 'icon']:
         if name == 'buddylist':
             data = self.blist.save_data()
         elif name == 'prefs':
             data = to_primitive(dictdiff(profile.defaultprefs, self.prefs))
         elif name == 'defaultprefs':
             pass
         elif name == 'statuses':
             data = [s.__getstate__() for s in self.statuses]
             for s in data:
                 s['format'] = dict(s['format'])
         else:
             data = to_primitive(getattr(self, name))
         f = pth / name + '_' + str(int(time())) + '.blob'
         with f.open('wb') as out:
             if name == 'icon':
                 out.write(data)
             else:
                 out.write(pydumps(data).encode('z'))
Exemplo n.º 4
0
 def serialize_default(self, key, value, crypt_key=None):
     return self.encrypt(pydumps(value), crypt_key)
Exemplo n.º 5
0
 def test_serialization(self):
     values = [
         5,
         'foo',
         u'bar',
         (),
         (1, ),
         (1, 2),
         [],
         [1],
         [1, 2],
         set(),
         set('abc'),
         set((1, 2, 3)),
         set(((3, ), (), '')),
         {},
         {
             1: 2
         },
         {
             'a': 1
         },
         {
             '1': 1
         },
         {
             4.3: ''
         },
         4.3,
         {
             '4.3': 5
         },
         {
             u'234': 54
         },
         {
             1: u'342'
         },
         {
             1: 'abc'
         },
         {
             1: 2,
             3: 4,
             5: 6
         },
         {
             'foo': set((1, 2.3, '3', (), (1, 2)))
         },
         frozenset('123'),
         None,
         {
             None: None
         },
         {
             True: False
         },
         u'__str__foo',
         {
             u'__tuple__': u'foo'
         },
         {
             u'__tuple__': 'foo'
         },
         {
             '__tuple__': u'foo'
         },
         {
             '__tuple__': u'foo'
         },
         ['__tuple__'],
         '__True__',
         u'__None__',
     ]
     for value in values + [values]:
         dataout = pyloads(pydumps(value))
         self.assertEquals(value, dataout)
         self.assertEqual(type(value), type(dataout))
Exemplo n.º 6
0
 def pack(cls, data):
     from util.json import pydumps
     d = pydumps(data).encode('z')
     v = cls.__VERSION
     log.info("packing version %d of %s", v, cls.__name__)
     return pack("!I", v) + d
Exemplo n.º 7
0
 def serialize_default(self, key, value, crypt_key = None):
     return self.encrypt(pydumps(value), crypt_key)