Make message.to_dict() return bytes for DATA type field (#386)
* change to_dict return bytes for DATA type * reformat * reformat * add includes .h --------- Co-authored-by: Brian Xu <brian.xu1@bytedance.com>
This commit is contained in:
@@ -1060,6 +1060,12 @@ cdef _to_dict(msg, bint verbose, bint ordered, bint encode_bytes_as_base64=False
|
|||||||
# encode the message as base64 and return utf-8 string
|
# encode the message as base64 and return utf-8 string
|
||||||
return base64.b64encode(msg).decode('utf-8')
|
return base64.b64encode(msg).decode('utf-8')
|
||||||
|
|
||||||
|
if msg_type is memoryview:
|
||||||
|
if encode_bytes_as_base64:
|
||||||
|
return base64.b64encode(bytes(msg)).decode('utf-8')
|
||||||
|
else:
|
||||||
|
return bytes(msg)
|
||||||
|
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
1
setup.py
1
setup.py
@@ -222,6 +222,7 @@ setup(
|
|||||||
"*.capnp",
|
"*.capnp",
|
||||||
"helpers/*.pxd",
|
"helpers/*.pxd",
|
||||||
"helpers/*.h",
|
"helpers/*.h",
|
||||||
|
"includes/*.h",
|
||||||
"includes/*.pxd",
|
"includes/*.pxd",
|
||||||
"lib/*.pxd",
|
"lib/*.pxd",
|
||||||
"lib/*.py",
|
"lib/*.py",
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import capnp
|
import capnp
|
||||||
|
import base64
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
this_dir = os.path.dirname(__file__)
|
this_dir = os.path.dirname(__file__)
|
||||||
@@ -14,7 +15,7 @@ def test_blob_to_dict(blob_schema):
|
|||||||
blob_value = b"hello world"
|
blob_value = b"hello world"
|
||||||
blob = blob_schema.BlobTest(blob=blob_value)
|
blob = blob_schema.BlobTest(blob=blob_value)
|
||||||
blob_dict = blob.to_dict(encode_bytes_as_base64=True)
|
blob_dict = blob.to_dict(encode_bytes_as_base64=True)
|
||||||
assert blob_dict["blob"].tobytes() == blob_value
|
assert base64.b64decode(blob_dict["blob"]) == blob_value
|
||||||
msg = blob_schema.BlobTest.new_message()
|
msg = blob_schema.BlobTest.new_message()
|
||||||
msg.from_dict(blob_dict)
|
msg.from_dict(blob_dict)
|
||||||
assert blob.blob == blob_value
|
assert blob.blob == blob_value
|
||||||
|
|||||||
Reference in New Issue
Block a user