utils.py 1.0 KB

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