| |
| import os |
|
|
| from .exceptions import * |
| from .ext import ExtType, Timestamp |
|
|
| version = (1, 1, 0) |
| __version__ = "1.1.0" |
|
|
|
|
| if os.environ.get("MSGPACK_PUREPYTHON"): |
| from .fallback import Packer, Unpacker, unpackb |
| else: |
| try: |
| from ._cmsgpack import Packer, Unpacker, unpackb |
| except ImportError: |
| from .fallback import Packer, Unpacker, unpackb |
|
|
|
|
| def pack(o, stream, **kwargs): |
| """ |
| Pack object `o` and write it to `stream` |
| |
| See :class:`Packer` for options. |
| """ |
| packer = Packer(**kwargs) |
| stream.write(packer.pack(o)) |
|
|
|
|
| def packb(o, **kwargs): |
| """ |
| Pack object `o` and return packed bytes |
| |
| See :class:`Packer` for options. |
| """ |
| return Packer(**kwargs).pack(o) |
|
|
|
|
| def unpack(stream, **kwargs): |
| """ |
| Unpack an object from `stream`. |
| |
| Raises `ExtraData` when `stream` contains extra bytes. |
| See :class:`Unpacker` for options. |
| """ |
| data = stream.read() |
| return unpackb(data, **kwargs) |
|
|
|
|
| |
| load = unpack |
| loads = unpackb |
|
|
| dump = pack |
| dumps = packb |
|
|