/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
0.12.3 by Aaron Bentley
Add pack serialization
1
from bzrlib import pack
0.12.1 by Aaron Bentley
Initial bencode-based encoding
2
from bzrlib.util import bencode
3
4
5
def serialize(tt):
6
    new_name = dict((k, v.encode('utf-8')) for k, v in tt._new_name.items())
7
    attribs = {
8
        '_id_number': tt._id_number,
9
        '_new_name': new_name,
0.12.2 by Aaron Bentley
Handle parents
10
        '_new_parent': tt._new_parent,
0.12.1 by Aaron Bentley
Initial bencode-based encoding
11
        '_new_id': tt._new_id,
12
        }
0.12.3 by Aaron Bentley
Add pack serialization
13
    serializer = pack.ContainerSerialiser()
14
    yield serializer.begin()
15
    yield serializer.bytes_record(bencode.bencode(attribs), (('attribs',),))
16
    yield serializer.end()
17
0.12.1 by Aaron Bentley
Initial bencode-based encoding
18
19
def deserialize(tt, input):
0.12.3 by Aaron Bentley
Add pack serialization
20
    parser = pack.ContainerPushParser()
21
    for bytes in input:
22
        parser.accept_bytes(bytes)
23
    iterator = iter(parser.read_pending_records())
24
    names, content = iterator.next()
25
    attribs = bencode.bdecode(content)
0.12.1 by Aaron Bentley
Initial bencode-based encoding
26
    tt._id_number = attribs['_id_number']
27
    tt._new_name = dict((k, v.decode('utf-8'))
28
                        for k, v in attribs['_new_name'].items())
0.12.2 by Aaron Bentley
Handle parents
29
    tt._new_parent = attribs['_new_parent']
0.12.1 by Aaron Bentley
Initial bencode-based encoding
30
    tt._new_id = attribs['_new_id']
31
    tt._r_new_id = dict((v, k) for k, v in tt._new_id.items())