|
|
|
import os |
|
|
|
from .exceptions import * |
|
from .ext import ExtType, Timestamp |
|
|
|
version = (1, 1, 1) |
|
__version__ = "1.1.1" |
|
|
|
|
|
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 |
|
|