diff options
author | folz <joachim.folz@dfki.de> | 2015-11-12 11:49:19 +0100 |
---|---|---|
committer | folz <joachim.folz@dfki.de> | 2016-01-25 13:25:10 +0100 |
commit | 31adc5a3c09a5f3506db192e1fb8b7ca4b72d974 (patch) | |
tree | 69574385716479ace1e9c76235ca96b75d887aa3 /msgpack/fallback.py | |
parent | 8036cb4e0e8e971c4396b5a8162aeff5b3459aa5 (diff) | |
download | msgpack-python-31adc5a3c09a5f3506db192e1fb8b7ca4b72d974.tar.gz |
Support packing memoryview objects
Diffstat (limited to 'msgpack/fallback.py')
-rw-r--r-- | msgpack/fallback.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/msgpack/fallback.py b/msgpack/fallback.py index 40c54a8..348e017 100644 --- a/msgpack/fallback.py +++ b/msgpack/fallback.py @@ -36,6 +36,8 @@ if hasattr(sys, 'pypy_version_info'): else: self.builder = StringBuilder() def write(self, s): + if isinstance(s, memoryview): + s = s.tobytes() self.builder.append(s) def getvalue(self): return self.builder.build() @@ -682,7 +684,7 @@ class Packer(object): default_used = True continue raise PackValueError("Integer value out of range") - if self._use_bin_type and check(obj, bytes): + if self._use_bin_type and check(obj, (bytes, memoryview)): n = len(obj) if n <= 0xff: self._buffer.write(struct.pack('>BB', 0xc4, n)) @@ -693,7 +695,7 @@ class Packer(object): else: raise PackValueError("Bytes is too large") return self._buffer.write(obj) - if check(obj, (Unicode, bytes)): + if check(obj, (Unicode, bytes, memoryview)): if check(obj, Unicode): if self._encoding is None: raise TypeError( |