Skip to content

Commit 59c8b51

Browse files
committed
Default value of read_size is min(1024**2, max_buffer_size)
1 parent 53ca2bb commit 59c8b51

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

msgpack/_msgpack.pyx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -267,13 +267,13 @@ def unpack(object stream, object object_hook=None, object list_hook=None,
267267
cdef class Unpacker(object):
268268
"""
269269
Streaming unpacker.
270-
read_size is used like file_like.read(read_size)
271270
272271
`file_like` is a file-like object having `.read(n)` method.
273272
When `Unpacker` initialized with `file_like`, unpacker reads serialized data
274273
from it and `.feed()` method is not usable.
275274
276-
`read_size` is used as `file_like.read(read_size)`. (default: 1024**2)
275+
`read_size` is used as `file_like.read(read_size)`.
276+
(default: min(1024**2, max_buffer_size))
277277
278278
If `use_list` is true, msgpack list is deserialized to Python list.
279279
Otherwise, it is deserialized to Python tuple. (default: False)
@@ -329,7 +329,7 @@ cdef class Unpacker(object):
329329
free(self.buf)
330330
self.buf = NULL
331331

332-
def __init__(self, file_like=None, Py_ssize_t read_size=1024*1024, bint use_list=0,
332+
def __init__(self, file_like=None, Py_ssize_t read_size=0, bint use_list=0,
333333
object object_hook=None, object list_hook=None,
334334
encoding=None, unicode_errors='strict', int max_buffer_size=0):
335335
self.use_list = use_list
@@ -340,6 +340,8 @@ cdef class Unpacker(object):
340340
raise ValueError("`file_like.read` must be a callable.")
341341
if not max_buffer_size:
342342
max_buffer_size = INT_MAX
343+
if not read_size:
344+
read_size = min(max_buffer_size, 1024**2)
343345
self.max_buffer_size = max_buffer_size
344346
if read_size > max_buffer_size:
345347
raise ValueError("read_size should be less or equal to max_buffer_size")

0 commit comments

Comments
 (0)