Move unpack() from each implementation to __init__. (#286)

Fixes #285
This commit is contained in:
INADA Naoki 2018-02-22 00:55:32 +09:00 committed by GitHub
parent ae8d469482
commit da902f9c1d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 39 deletions

View file

@ -19,13 +19,13 @@ class ExtType(namedtuple('ExtType', 'code data')):
import os
if os.environ.get('MSGPACK_PUREPYTHON'):
from msgpack.fallback import Packer, unpack, unpackb, Unpacker
from msgpack.fallback import Packer, unpackb, Unpacker
else:
try:
from msgpack._packer import Packer
from msgpack._unpacker import unpack, unpackb, Unpacker
from msgpack._unpacker import unpackb, Unpacker
except ImportError:
from msgpack.fallback import Packer, unpack, unpackb, Unpacker
from msgpack.fallback import Packer, unpackb, Unpacker
def pack(o, stream, **kwargs):
@ -46,6 +46,17 @@ def packb(o, **kwargs):
"""
return Packer(**kwargs).pack(o)
def unpack(stream, **kwargs):
"""
Unpack an object from `stream`.
Raises `ExtraData` when `packed` contains extra bytes.
See :class:`Unpacker` for options.
"""
return unpackb(stream.read(), **kwargs)
# alias for compatibility to simplejson/marshal/pickle.
load = unpack
loads = unpackb