Browse Source

Update MsgPack 0.6.0 (197e307) → 0.6.1 (737f08a).

pull/1200/head
JackDandy 6 years ago
parent
commit
0a2e5eb142
  1. 1
      CHANGES.md
  2. 2
      lib/msgpack/_version.py
  3. 47
      lib/msgpack/fallback.py

1
CHANGES.md

@ -9,6 +9,7 @@
* Update DiskCache library 3.1.1 (05cac6a) to 3.1.1 (2649ac9) * Update DiskCache library 3.1.1 (05cac6a) to 3.1.1 (2649ac9)
* Update Hachoir library 2.0a3 to 2.0a6 (c102cc7) * Update Hachoir library 2.0a3 to 2.0a6 (c102cc7)
* Update html5lib 1.1-dev (4f92357) to 1.1-dev (4b22754) * Update html5lib 1.1-dev (4f92357) to 1.1-dev (4b22754)
* Update MsgPack 0.6.0 (197e307) to 0.6.1 (737f08a)
[develop changelog] [develop changelog]

2
lib/msgpack/_version.py

@ -1 +1 @@
version = (0, 6, 0) version = (0, 6, 1)

47
lib/msgpack/fallback.py

@ -130,7 +130,7 @@ def unpackb(packed, **kwargs):
See :class:`Unpacker` for options. See :class:`Unpacker` for options.
""" """
unpacker = Unpacker(None, **kwargs) unpacker = Unpacker(None, max_buffer_size=len(packed), **kwargs)
unpacker.feed(packed) unpacker.feed(packed)
try: try:
ret = unpacker._unpack() ret = unpacker._unpack()
@ -208,29 +208,34 @@ class Unpacker(object):
You should set this parameter when unpacking data from untrusted source. You should set this parameter when unpacking data from untrusted source.
:param int max_str_len: :param int max_str_len:
Limits max length of str. (default: 1024*1024) Deprecated, use *max_buffer_size* instead.
Limits max length of str. (default: max_buffer_size or 1024*1024)
:param int max_bin_len: :param int max_bin_len:
Limits max length of bin. (default: 1024*1024) Deprecated, use *max_buffer_size* instead.
Limits max length of bin. (default: max_buffer_size or 1024*1024)
:param int max_array_len: :param int max_array_len:
Limits max length of array. (default: 128*1024) Limits max length of array.
(default: max_buffer_size or 128*1024)
:param int max_map_len: :param int max_map_len:
Limits max length of map. (default: 32*1024) Limits max length of map.
(default: max_buffer_size//2 or 32*1024)
:param int max_ext_len: :param int max_ext_len:
Limits max size of ext type. (default: 1024*1024) Deprecated, use *max_buffer_size* instead.
Limits max size of ext type. (default: max_buffer_size or 1024*1024)
example of streaming deserialize from file-like object:: Example of streaming deserialize from file-like object::
unpacker = Unpacker(file_like, raw=False) unpacker = Unpacker(file_like, raw=False, max_buffer_size=10*1024*1024)
for o in unpacker: for o in unpacker:
process(o) process(o)
example of streaming deserialize from socket:: Example of streaming deserialize from socket::
unpacker = Unpacker(raw=False) unpacker = Unpacker(raw=False, max_buffer_size=10*1024*1024)
while True: while True:
buf = sock.recv(1024**2) buf = sock.recv(1024**2)
if not buf: if not buf:
@ -250,12 +255,11 @@ class Unpacker(object):
object_hook=None, object_pairs_hook=None, list_hook=None, object_hook=None, object_pairs_hook=None, list_hook=None,
encoding=None, unicode_errors=None, max_buffer_size=0, encoding=None, unicode_errors=None, max_buffer_size=0,
ext_hook=ExtType, ext_hook=ExtType,
max_str_len=1024*1024, max_str_len=-1,
max_bin_len=1024*1024, max_bin_len=-1,
max_array_len=128*1024, max_array_len=-1,
max_map_len=32*1024, max_map_len=-1,
max_ext_len=1024*1024): max_ext_len=-1):
if encoding is not None: if encoding is not None:
warnings.warn( warnings.warn(
"encoding is deprecated, Use raw=False instead.", "encoding is deprecated, Use raw=False instead.",
@ -286,6 +290,17 @@ class Unpacker(object):
# state, which _buf_checkpoint records. # state, which _buf_checkpoint records.
self._buf_checkpoint = 0 self._buf_checkpoint = 0
if max_str_len == -1:
max_str_len = max_buffer_size or 1024*1024
if max_bin_len == -1:
max_bin_len = max_buffer_size or 1024*1024
if max_array_len == -1:
max_array_len = max_buffer_size or 128*1024
if max_map_len == -1:
max_map_len = max_buffer_size//2 or 32*1024
if max_ext_len == -1:
max_ext_len = max_buffer_size or 1024*1024
self._max_buffer_size = max_buffer_size or 2**31-1 self._max_buffer_size = max_buffer_size or 2**31-1
if read_size > self._max_buffer_size: if read_size > self._max_buffer_size:
raise ValueError("read_size must be smaller than max_buffer_size") raise ValueError("read_size must be smaller than max_buffer_size")

Loading…
Cancel
Save