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 Hachoir library 2.0a3 to 2.0a6 (c102cc7)
* Update html5lib 1.1-dev (4f92357) to 1.1-dev (4b22754)
* Update MsgPack 0.6.0 (197e307) to 0.6.1 (737f08a)
[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.
"""
unpacker = Unpacker(None, **kwargs)
unpacker = Unpacker(None, max_buffer_size=len(packed), **kwargs)
unpacker.feed(packed)
try:
ret = unpacker._unpack()
@ -208,29 +208,34 @@ class Unpacker(object):
You should set this parameter when unpacking data from untrusted source.
: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:
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:
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:
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:
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:
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:
buf = sock.recv(1024**2)
if not buf:
@ -250,12 +255,11 @@ class Unpacker(object):
object_hook=None, object_pairs_hook=None, list_hook=None,
encoding=None, unicode_errors=None, max_buffer_size=0,
ext_hook=ExtType,
max_str_len=1024*1024,
max_bin_len=1024*1024,
max_array_len=128*1024,
max_map_len=32*1024,
max_ext_len=1024*1024):
max_str_len=-1,
max_bin_len=-1,
max_array_len=-1,
max_map_len=-1,
max_ext_len=-1):
if encoding is not None:
warnings.warn(
"encoding is deprecated, Use raw=False instead.",
@ -286,6 +290,17 @@ class Unpacker(object):
# state, which _buf_checkpoint records.
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
if read_size > self._max_buffer_size:
raise ValueError("read_size must be smaller than max_buffer_size")

Loading…
Cancel
Save