summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorINADA Naoki <methane@users.noreply.github.com>2018-02-23 15:41:21 +0900
committerGitHub <noreply@github.com>2018-02-23 15:41:21 +0900
commitae3a6ba0b04487d7108360d1d504332aed079556 (patch)
tree16061fe26078d25e7743d672f2c36067397aea7a
parentf38c1a3674b7623080cb774b56ede21383bde04a (diff)
downloadmsgpack-python-ae3a6ba0b04487d7108360d1d504332aed079556.tar.gz
Deprecate implementation module's unpack() (#290)
-rw-r--r--msgpack/__init__.py18
-rw-r--r--msgpack/_unpacker.pyx9
-rw-r--r--msgpack/fallback.py21
3 files changed, 23 insertions, 25 deletions
diff --git a/msgpack/__init__.py b/msgpack/__init__.py
index 6c5ae53..3955a41 100644
--- a/msgpack/__init__.py
+++ b/msgpack/__init__.py
@@ -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,18 @@ def packb(o, **kwargs):
"""
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)
+
+
# alias for compatibility to simplejson/marshal/pickle.
load = unpack
loads = unpackb
diff --git a/msgpack/_unpacker.pyx b/msgpack/_unpacker.pyx
index 3843e92..d7fa5bc 100644
--- a/msgpack/_unpacker.pyx
+++ b/msgpack/_unpacker.pyx
@@ -212,12 +212,9 @@ def unpackb(object packed, object object_hook=None, object list_hook=None,
def unpack(object stream, **kwargs):
- """
- Unpack an object from `stream`.
-
- Raises `ValueError` when `stream` has extra bytes.
- See :class:`Unpacker` for options.
- """
+ PyErr_WarnEx(
+ PendingDeprecationWarning,
+ "Direct calling implementation's unpack() is deprecated, Use msgpack.unpack() or unpackb() instead.", 1)
data = stream.read()
return unpackb(data, **kwargs)
diff --git a/msgpack/fallback.py b/msgpack/fallback.py
index e9108d2..c0e5fd6 100644
--- a/msgpack/fallback.py
+++ b/msgpack/fallback.py
@@ -101,12 +101,9 @@ def _get_data_from_buffer(obj):
def unpack(stream, **kwargs):
- """
- Unpack an object from `stream`.
-
- Raises `ExtraData` when `packed` contains extra bytes.
- See :class:`Unpacker` for options.
- """
+ warnings.warn(
+ "Direct calling implementation's unpack() is deprecated, Use msgpack.unpack() or unpackb() instead.",
+ PendingDeprecationWarning)
data = stream.read()
return unpackb(data, **kwargs)
@@ -224,11 +221,7 @@ class Unpacker(object):
"encoding is deprecated, Use raw=False instead.",
PendingDeprecationWarning)
- if unicode_errors is not None:
- warnings.warn(
- "unicode_errors is deprecated.",
- PendingDeprecationWarning)
- else:
+ if unicode_errors is None:
unicode_errors = 'strict'
if file_like is None:
@@ -713,7 +706,7 @@ class Packer(object):
(deprecated) Convert unicode to bytes with this encoding. (default: 'utf-8')
:param str unicode_errors:
- (deprecated) Error handler for encoding unicode. (default: 'strict')
+ Error handler for encoding unicode. (default: 'strict')
"""
def __init__(self, default=None, encoding=None, unicode_errors=None,
use_single_float=False, autoreset=True, use_bin_type=False,
@@ -727,10 +720,6 @@ class Packer(object):
if unicode_errors is None:
unicode_errors = 'strict'
- else:
- warnings.warn(
- "unicode_errors is deprecated.",
- PendingDeprecationWarning)
self._strict_types = strict_types
self._use_float = use_single_float