__init__.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # coding: utf-8
  2. from collections import namedtuple
  3. from pandas.io.msgpack.exceptions import * # noqa
  4. from pandas.io.msgpack._version import version # noqa
  5. class ExtType(namedtuple('ExtType', 'code data')):
  6. """ExtType represents ext type in msgpack."""
  7. def __new__(cls, code, data):
  8. if not isinstance(code, int):
  9. raise TypeError("code must be int")
  10. if not isinstance(data, bytes):
  11. raise TypeError("data must be bytes")
  12. if not 0 <= code <= 127:
  13. raise ValueError("code must be 0~127")
  14. return super(ExtType, cls).__new__(cls, code, data)
  15. import os # noqa
  16. from pandas.io.msgpack._packer import Packer # noqa
  17. from pandas.io.msgpack._unpacker import unpack, unpackb, Unpacker # noqa
  18. def pack(o, stream, **kwargs):
  19. """
  20. Pack object `o` and write it to `stream`
  21. See :class:`Packer` for options.
  22. """
  23. packer = Packer(**kwargs)
  24. stream.write(packer.pack(o))
  25. def packb(o, **kwargs):
  26. """
  27. Pack object `o` and return packed bytes
  28. See :class:`Packer` for options.
  29. """
  30. return Packer(**kwargs).pack(o)
  31. # alias for compatibility to simplejson/marshal/pickle.
  32. load = unpack
  33. loads = unpackb
  34. dump = pack
  35. dumps = packb