|
24 | 24 | """This module contains the implementation of a helper class for MySQL X
|
25 | 25 | Protobuf messages."""
|
26 | 26 |
|
27 |
| -from mysqlx.compat import NUMERIC_TYPES, STRING_TYPES, BYTE_TYPES |
| 27 | +from mysqlx.compat import PY3, NUMERIC_TYPES, STRING_TYPES, BYTE_TYPES |
| 28 | +from mysqlx.helpers import encode_to_bytes |
28 | 29 |
|
29 | 30 |
|
30 | 31 | _SERVER_MESSAGES_TUPLES = (
|
@@ -232,8 +233,12 @@ def __setattr__(self, name, value):
|
232 | 233 | self._msg[name] = value.get_message() \
|
233 | 234 | if isinstance(value, Message) else value
|
234 | 235 | else:
|
235 |
| - if isinstance(value, (NUMERIC_TYPES, STRING_TYPES, BYTE_TYPES)): |
| 236 | + if PY3 and isinstance(value, STRING_TYPES): |
| 237 | + setattr(self._msg, name, encode_to_bytes(value)) |
| 238 | + elif isinstance(value, (NUMERIC_TYPES, STRING_TYPES, BYTE_TYPES)): |
236 | 239 | setattr(self._msg, name, value)
|
| 240 | + elif isinstance(value, list): |
| 241 | + getattr(self._msg, name).extend(value) |
237 | 242 | elif isinstance(value, Message):
|
238 | 243 | getattr(self._msg, name).MergeFrom(value.get_message())
|
239 | 244 | else:
|
|
0 commit comments