__init__.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # ruff: noqa: F401
  2. import os
  3. from .exceptions import * # noqa: F403
  4. from .ext import ExtType, Timestamp
  5. version = (1, 1, 2)
  6. __version__ = "1.1.2"
  7. if os.environ.get("MSGPACK_PUREPYTHON"):
  8. from .fallback import Packer, Unpacker, unpackb
  9. else:
  10. try:
  11. from ._cmsgpack import Packer, Unpacker, unpackb
  12. except ImportError:
  13. from .fallback import Packer, Unpacker, unpackb
  14. def pack(o, stream, **kwargs):
  15. """
  16. Pack object `o` and write it to `stream`
  17. See :class:`Packer` for options.
  18. """
  19. packer = Packer(**kwargs)
  20. stream.write(packer.pack(o))
  21. def packb(o, **kwargs):
  22. """
  23. Pack object `o` and return packed bytes
  24. See :class:`Packer` for options.
  25. """
  26. return Packer(**kwargs).pack(o)
  27. def unpack(stream, **kwargs):
  28. """
  29. Unpack an object from `stream`.
  30. Raises `ExtraData` when `stream` contains extra bytes.
  31. See :class:`Unpacker` for options.
  32. """
  33. data = stream.read()
  34. return unpackb(data, **kwargs)
  35. # alias for compatibility to simplejson/marshal/pickle.
  36. load = unpack
  37. loads = unpackb
  38. dump = pack
  39. dumps = packb