From 87072ea3946b7c7f8b8c2858f22e1f8f1949e88c Mon Sep 17 00:00:00 2001 From: Pham Cong Dinh Date: Thu, 12 Mar 2020 19:14:58 +0700 Subject: [PATCH 1/2] Set strict_map_key to False because strict_map_key default value in msgpack 1.0 makes the driver unable to parse server response --- tarantool/response.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tarantool/response.py b/tarantool/response.py index 9516cd39..c672b790 100644 --- a/tarantool/response.py +++ b/tarantool/response.py @@ -54,7 +54,7 @@ def __init__(self, conn, response): # Get rid of the following warning. # > PendingDeprecationWarning: encoding is deprecated, # > Use raw=False instead. - unpacker = msgpack.Unpacker(use_list=True, raw=False) + unpacker = msgpack.Unpacker(use_list=True, raw=False, strict_map_key=False) elif conn.encoding is not None: unpacker = msgpack.Unpacker(use_list=True, encoding=conn.encoding) else: From e5416b3ad408564b5369a5ebce5a2a45b2563878 Mon Sep 17 00:00:00 2001 From: Pham Cong Dinh Date: Thu, 9 Apr 2020 22:43:56 +0700 Subject: [PATCH 2/2] Added support for mspack versions that are older than 1.0.0 --- tarantool/response.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tarantool/response.py b/tarantool/response.py index c672b790..9dcec564 100644 --- a/tarantool/response.py +++ b/tarantool/response.py @@ -54,11 +54,20 @@ def __init__(self, conn, response): # Get rid of the following warning. # > PendingDeprecationWarning: encoding is deprecated, # > Use raw=False instead. - unpacker = msgpack.Unpacker(use_list=True, raw=False, strict_map_key=False) + if msgpack.version >= (1, 0, 0): + unpacker = msgpack.Unpacker(use_list=True, raw=False, strict_map_key=False) + else: + unpacker = msgpack.Unpacker(use_list=True, raw=False) elif conn.encoding is not None: - unpacker = msgpack.Unpacker(use_list=True, encoding=conn.encoding) + if msgpack.version >= (1, 0, 0): + unpacker = msgpack.Unpacker(use_list=True, encoding=conn.encoding, strict_map_key=False) + else: + unpacker = msgpack.Unpacker(use_list=True, encoding=conn.encoding) else: - unpacker = msgpack.Unpacker(use_list=True) + if msgpack.version >= (1, 0, 0): + unpacker = msgpack.Unpacker(use_list=True, strict_map_key=False) + else: + unpacker = msgpack.Unpacker(use_list=True) unpacker.feed(response) header = unpacker.unpack()