Fix setting string fields to support all types of strings
This commit is contained in:
@@ -410,7 +410,7 @@ cdef _setDynamicField(_DynamicSetterClasses thisptr, field, value, parent):
|
|||||||
elif value_type is bool:
|
elif value_type is bool:
|
||||||
temp = C_DynamicValue.Reader(<cbool>value)
|
temp = C_DynamicValue.Reader(<cbool>value)
|
||||||
thisptr.set(field, temp)
|
thisptr.set(field, temp)
|
||||||
elif value_type is str:
|
elif isinstance(value, basestring):
|
||||||
temp = C_DynamicValue.Reader(<char*>value)
|
temp = C_DynamicValue.Reader(<char*>value)
|
||||||
thisptr.set(field, temp)
|
thisptr.set(field, temp)
|
||||||
elif value_type is list:
|
elif value_type is list:
|
||||||
@@ -429,13 +429,10 @@ cdef _setDynamicField(_DynamicSetterClasses thisptr, field, value, parent):
|
|||||||
|
|
||||||
cdef _to_dict(msg):
|
cdef _to_dict(msg):
|
||||||
msg_type = type(msg)
|
msg_type = type(msg)
|
||||||
print msg_type
|
|
||||||
if msg_type is _DynamicListBuilder or msg_type is _DynamicListReader or msg_type is _DynamicResizableListBuilder:
|
if msg_type is _DynamicListBuilder or msg_type is _DynamicListReader or msg_type is _DynamicResizableListBuilder:
|
||||||
print 'in list'
|
|
||||||
return [_to_dict(x) for x in msg]
|
return [_to_dict(x) for x in msg]
|
||||||
|
|
||||||
if msg_type is _DynamicStructBuilder or msg_type is _DynamicStructReader:
|
if msg_type is _DynamicStructBuilder or msg_type is _DynamicStructReader:
|
||||||
print 'in struct'
|
|
||||||
ret = {}
|
ret = {}
|
||||||
try:
|
try:
|
||||||
which = msg.which()
|
which = msg.which()
|
||||||
@@ -445,7 +442,6 @@ cdef _to_dict(msg):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
for field in msg.schema.non_union_fields:
|
for field in msg.schema.non_union_fields:
|
||||||
print field
|
|
||||||
if msg._has(field):
|
if msg._has(field):
|
||||||
ret[field] = _to_dict(getattr(msg, field))
|
ret[field] = _to_dict(getattr(msg, field))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user