1# -*- coding: utf-8 -*- 2 3from __future__ import absolute_import 4 5import binascii 6 7from .transport import TMemoryBuffer 8from .protocol.binary import TBinaryProtocolFactory 9 10 11def serialize(thrift_object, proto_factory=TBinaryProtocolFactory()): 12 transport = TMemoryBuffer() 13 protocol = proto_factory.get_protocol(transport) 14 thrift_object.write(protocol) 15 protocol.write_message_end() 16 return transport.getvalue() 17 18 19def deserialize(thrift_object, buf, proto_factory=TBinaryProtocolFactory()): 20 transport = TMemoryBuffer(buf) 21 protocol = proto_factory.get_protocol(transport) 22 thrift_object.read(protocol) 23 return thrift_object 24 25 26def hexlify(byte_array, delimeter=' '): 27 s = binascii.hexlify(byte_array).decode('utf-8') 28 return delimeter.join(a+b for a, b in zip(s[::2], s[1::2])) 29 30 31def hexprint(byte_array, delimeter=' ', count=10): 32 print("Bytes:") 33 print(byte_array) 34 35 print("\nHex:") 36 g = hexlify(byte_array, delimeter).split(delimeter) 37 print('\n'.join(' '.join(g[i:i+10]) for i in range(0, len(g), 10))) 38