summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorINADA Naoki <songofacandy@gmail.com>2012-07-20 02:05:43 +0900
committerINADA Naoki <songofacandy@gmail.com>2012-07-20 02:05:43 +0900
commit59c8b51e5b3df8322bc4d2f639bcafd6a25eecaf (patch)
treeaa23e7e79c989607e630a635ac667f2af1c93acd
parent53ca2bb648d423462b970493b8ed63cdaf70afe4 (diff)
downloadmsgpack-python-59c8b51e5b3df8322bc4d2f639bcafd6a25eecaf.tar.gz
Default value of read_size is min(1024**2, max_buffer_size)
-rw-r--r--msgpack/_msgpack.pyx8
1 files changed, 5 insertions, 3 deletions
diff --git a/msgpack/_msgpack.pyx b/msgpack/_msgpack.pyx
index 00d6d90..ebf1592 100644
--- a/msgpack/_msgpack.pyx
+++ b/msgpack/_msgpack.pyx
@@ -267,13 +267,13 @@ def unpack(object stream, object object_hook=None, object list_hook=None,
cdef class Unpacker(object):
"""
Streaming unpacker.
- read_size is used like file_like.read(read_size)
`file_like` is a file-like object having `.read(n)` method.
When `Unpacker` initialized with `file_like`, unpacker reads serialized data
from it and `.feed()` method is not usable.
- `read_size` is used as `file_like.read(read_size)`. (default: 1024**2)
+ `read_size` is used as `file_like.read(read_size)`.
+ (default: min(1024**2, max_buffer_size))
If `use_list` is true, msgpack list is deserialized to Python list.
Otherwise, it is deserialized to Python tuple. (default: False)
@@ -329,7 +329,7 @@ cdef class Unpacker(object):
free(self.buf)
self.buf = NULL
- def __init__(self, file_like=None, Py_ssize_t read_size=1024*1024, bint use_list=0,
+ def __init__(self, file_like=None, Py_ssize_t read_size=0, bint use_list=0,
object object_hook=None, object list_hook=None,
encoding=None, unicode_errors='strict', int max_buffer_size=0):
self.use_list = use_list
@@ -340,6 +340,8 @@ cdef class Unpacker(object):
raise ValueError("`file_like.read` must be a callable.")
if not max_buffer_size:
max_buffer_size = INT_MAX
+ if not read_size:
+ read_size = min(max_buffer_size, 1024**2)
self.max_buffer_size = max_buffer_size
if read_size > max_buffer_size:
raise ValueError("read_size should be less or equal to max_buffer_size")