[BREAKING CHANGE] Python: handle bool table fields properly. (#4736)

* Python: handle bool table fields properly.

* Small refactor.

* Use snake_case instead of camelCase. Use auto.
This commit is contained in:
Tin Tvrtković 2018-05-14 22:30:10 +02:00 committed by Wouter van Oortmerssen
parent f11ffedb2b
commit a9640bd9e1
2 changed files with 10 additions and 5 deletions

View File

@ -141,9 +141,14 @@ static void GetScalarFieldOfTable(const StructDef &struct_def,
code += MakeCamel(field.name);
code += "(self):";
code += OffsetPrefix(field);
code += Indent + Indent + Indent + "return " + getter;
code += "o + self._tab.Pos)\n";
code += Indent + Indent + "return " + field.value.constant + "\n\n";
getter += "o + self._tab.Pos)";
auto is_bool = field.value.type.base_type == BASE_TYPE_BOOL;
if (is_bool) {
getter = "bool(" + getter + ")";
}
code += Indent + Indent + Indent + "return " + getter + "\n";
auto defaultValue = (is_bool ? "False" : field.value.constant);
code += Indent + Indent + "return " + defaultValue + "\n\n";
}
// Get a struct by initializing an existing struct.

View File

@ -201,8 +201,8 @@ class Monster(object):
def Testbool(self):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(34))
if o != 0:
return self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)
return 0
return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos))
return False
# Monster
def Testhashs32Fnv1(self):