Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/idl_gen_python.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1628,7 +1628,7 @@ class PythonGenerator : public BaseGenerator {
} else if (IsInteger(base_type)) {
return "int";
} else if (base_type == BASE_TYPE_STRING) {
return "str";
return "Optional[str]";
} else {
FLATBUFFERS_ASSERT(false && "base_type is not a scalar or string type.");
return "";
Expand Down Expand Up @@ -1726,10 +1726,10 @@ class PythonGenerator : public BaseGenerator {
field_type = package_reference + "." + object_type + "]";
import_list->insert("import " + package_reference);
}
field_type = "List[" + field_type;
field_type = "Optional[List[" + field_type + "]";
} else {
field_type =
"List[" + GetBasePythonTypeForScalarAndString(base_type) + "]";
"Optional[List[" + GetBasePythonTypeForScalarAndString(base_type) + "]]";
}
}

Expand Down Expand Up @@ -1769,7 +1769,7 @@ class PythonGenerator : public BaseGenerator {
}

const auto default_value = GetDefaultValue(field);
// Wrties the init statement.
// Writes the init statement.
const auto field_field = namer_.Field(field);
code += GenIndents(2) + "self." + field_field + " = " + default_value +
" # type: " + field_type;
Expand Down
6 changes: 3 additions & 3 deletions tests/MyGame/Example/ArrayStruct.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,11 @@ class ArrayStructT(object):
# ArrayStructT
def __init__(self):
self.a = 0.0 # type: float
self.b = None # type: List[int]
self.b = None # type: Optional[List[int]]
self.c = 0 # type: int
self.d = None # type: List[MyGame.Example.NestedStruct.NestedStructT]
self.d = None # type: Optional[List[MyGame.Example.NestedStruct.NestedStructT]]
self.e = 0 # type: int
self.f = None # type: List[int]
self.f = None # type: Optional[List[int]]

@classmethod
def InitFromBuf(cls, buf, pos):
Expand Down
42 changes: 21 additions & 21 deletions tests/MyGame/Example/Monster.py
Original file line number Diff line number Diff line change
Expand Up @@ -1407,16 +1407,16 @@ def __init__(self):
self.pos = None # type: Optional[MyGame.Example.Vec3.Vec3T]
self.mana = 150 # type: int
self.hp = 100 # type: int
self.name = None # type: str
self.inventory = None # type: List[int]
self.name = None # type: Optional[str]
self.inventory = None # type: Optional[List[int]]
self.color = 8 # type: int
self.testType = 0 # type: int
self.test = None # type: Union[None, MyGame.Example.Monster.MonsterT, MyGame.Example.TestSimpleTableWithEnum.TestSimpleTableWithEnumT, MyGame.Example2.Monster.MonsterT]
self.test4 = None # type: List[MyGame.Example.Test.TestT]
self.testarrayofstring = None # type: List[str]
self.testarrayoftables = None # type: List[MyGame.Example.Monster.MonsterT]
self.test4 = None # type: Optional[List[MyGame.Example.Test.TestT]]
self.testarrayofstring = None # type: Optional[List[Optional[str]]]
self.testarrayoftables = None # type: Optional[List[MyGame.Example.Monster.MonsterT]]
self.enemy = None # type: Optional[MyGame.Example.Monster.MonsterT]
self.testnestedflatbuffer = None # type: List[int]
self.testnestedflatbuffer = None # type: Optional[List[int]]
self.testempty = None # type: Optional[MyGame.Example.Stat.StatT]
self.testbool = False # type: bool
self.testhashs32Fnv1 = 0 # type: int
Expand All @@ -1427,33 +1427,33 @@ def __init__(self):
self.testhashu32Fnv1a = 0 # type: int
self.testhashs64Fnv1a = 0 # type: int
self.testhashu64Fnv1a = 0 # type: int
self.testarrayofbools = None # type: List[bool]
self.testarrayofbools = None # type: Optional[List[bool]]
self.testf = 3.14159 # type: float
self.testf2 = 3.0 # type: float
self.testf3 = 0.0 # type: float
self.testarrayofstring2 = None # type: List[str]
self.testarrayofsortedstruct = None # type: List[MyGame.Example.Ability.AbilityT]
self.flex = None # type: List[int]
self.test5 = None # type: List[MyGame.Example.Test.TestT]
self.vectorOfLongs = None # type: List[int]
self.vectorOfDoubles = None # type: List[float]
self.testarrayofstring2 = None # type: Optional[List[Optional[str]]]
self.testarrayofsortedstruct = None # type: Optional[List[MyGame.Example.Ability.AbilityT]]
self.flex = None # type: Optional[List[int]]
self.test5 = None # type: Optional[List[MyGame.Example.Test.TestT]]
self.vectorOfLongs = None # type: Optional[List[int]]
self.vectorOfDoubles = None # type: Optional[List[float]]
self.parentNamespaceTest = None # type: Optional[MyGame.InParentNamespace.InParentNamespaceT]
self.vectorOfReferrables = None # type: List[MyGame.Example.Referrable.ReferrableT]
self.vectorOfReferrables = None # type: Optional[List[MyGame.Example.Referrable.ReferrableT]]
self.singleWeakReference = 0 # type: int
self.vectorOfWeakReferences = None # type: List[int]
self.vectorOfStrongReferrables = None # type: List[MyGame.Example.Referrable.ReferrableT]
self.vectorOfWeakReferences = None # type: Optional[List[int]]
self.vectorOfStrongReferrables = None # type: Optional[List[MyGame.Example.Referrable.ReferrableT]]
self.coOwningReference = 0 # type: int
self.vectorOfCoOwningReferences = None # type: List[int]
self.vectorOfCoOwningReferences = None # type: Optional[List[int]]
self.nonOwningReference = 0 # type: int
self.vectorOfNonOwningReferences = None # type: List[int]
self.vectorOfNonOwningReferences = None # type: Optional[List[int]]
self.anyUniqueType = 0 # type: int
self.anyUnique = None # type: Union[None, MyGame.Example.Monster.MonsterT, MyGame.Example.TestSimpleTableWithEnum.TestSimpleTableWithEnumT, MyGame.Example2.Monster.MonsterT]
self.anyAmbiguousType = 0 # type: int
self.anyAmbiguous = None # type: Union[None, MyGame.Example.Monster.MonsterT, MyGame.Example.Monster.MonsterT, MyGame.Example.Monster.MonsterT]
self.vectorOfEnums = None # type: List[int]
self.vectorOfEnums = None # type: Optional[List[int]]
self.signedEnum = -1 # type: int
self.testrequirednestedflatbuffer = None # type: List[int]
self.scalarKeySortedTables = None # type: List[MyGame.Example.Stat.StatT]
self.testrequirednestedflatbuffer = None # type: Optional[List[int]]
self.scalarKeySortedTables = None # type: Optional[List[MyGame.Example.Stat.StatT]]
self.nativeInline = None # type: Optional[MyGame.Example.Test.TestT]
self.longEnumNonEnumDefault = 0 # type: int
self.longEnumNormalDefault = 2 # type: int
Expand Down
6 changes: 3 additions & 3 deletions tests/MyGame/Example/NestedStruct.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,10 +105,10 @@ class NestedStructT(object):

# NestedStructT
def __init__(self):
self.a = None # type: List[int]
self.a = None # type: Optional[List[int]]
self.b = 0 # type: int
self.c = None # type: List[int]
self.d = None # type: List[int]
self.c = None # type: Optional[List[int]]
self.d = None # type: Optional[List[int]]

@classmethod
def InitFromBuf(cls, buf, pos):
Expand Down
2 changes: 1 addition & 1 deletion tests/MyGame/Example/NestedUnion/NestedUnionTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ class NestedUnionTestT(object):

# NestedUnionTestT
def __init__(self):
self.name = None # type: str
self.name = None # type: Optional[str]
self.dataType = 0 # type: int
self.data = None # type: Union[None, MyGame.Example.NestedUnion.Vec3.Vec3T, MyGame.Example.NestedUnion.TestSimpleTableWithEnum.TestSimpleTableWithEnumT]
self.id = 0 # type: int
Expand Down
2 changes: 1 addition & 1 deletion tests/MyGame/Example/Stat.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ class StatT(object):

# StatT
def __init__(self):
self.id = None # type: str
self.id = None # type: Optional[str]
self.val = 0 # type: int
self.count = 0 # type: int

Expand Down
4 changes: 2 additions & 2 deletions tests/MyGame/Example/TypeAliases.py
Original file line number Diff line number Diff line change
Expand Up @@ -267,8 +267,8 @@ def __init__(self):
self.u64 = 0 # type: int
self.f32 = 0.0 # type: float
self.f64 = 0.0 # type: float
self.v8 = None # type: List[int]
self.vf64 = None # type: List[float]
self.v8 = None # type: Optional[List[int]]
self.vf64 = None # type: Optional[List[float]]

@classmethod
def InitFromBuf(cls, buf, pos):
Expand Down
4 changes: 2 additions & 2 deletions tests/MyGame/MonsterExtra.py
Original file line number Diff line number Diff line change
Expand Up @@ -240,8 +240,8 @@ def __init__(self):
self.f1 = float('nan') # type: float
self.f2 = float('inf') # type: float
self.f3 = float('-inf') # type: float
self.dvec = None # type: List[float]
self.fvec = None # type: List[float]
self.dvec = None # type: Optional[List[float]]
self.fvec = None # type: Optional[List[float]]

@classmethod
def InitFromBuf(cls, buf, pos):
Expand Down
48 changes: 24 additions & 24 deletions tests/monster_test_generated.py
Original file line number Diff line number Diff line change
Expand Up @@ -728,7 +728,7 @@ class StatT(object):

# StatT
def __init__(self):
self.id = None # type: str
self.id = None # type: Optional[str]
self.val = 0 # type: int
self.count = 0 # type: int

Expand Down Expand Up @@ -1973,16 +1973,16 @@ def __init__(self):
self.pos = None # type: Optional[Vec3T]
self.mana = 150 # type: int
self.hp = 100 # type: int
self.name = None # type: str
self.inventory = None # type: List[int]
self.name = None # type: Optional[str]
self.inventory = None # type: Optional[List[int]]
self.color = 8 # type: int
self.testType = 0 # type: int
self.test = None # type: Union[None, MonsterT, TestSimpleTableWithEnumT, MonsterT]
self.test4 = None # type: List[TestT]
self.testarrayofstring = None # type: List[str]
self.testarrayoftables = None # type: List[MonsterT]
self.test4 = None # type: Optional[List[TestT]]
self.testarrayofstring = None # type: Optional[List[Optional[str]]]
self.testarrayoftables = None # type: Optional[List[MonsterT]]
self.enemy = None # type: Optional[MonsterT]
self.testnestedflatbuffer = None # type: List[int]
self.testnestedflatbuffer = None # type: Optional[List[int]]
self.testempty = None # type: Optional[StatT]
self.testbool = False # type: bool
self.testhashs32Fnv1 = 0 # type: int
Expand All @@ -1993,33 +1993,33 @@ def __init__(self):
self.testhashu32Fnv1a = 0 # type: int
self.testhashs64Fnv1a = 0 # type: int
self.testhashu64Fnv1a = 0 # type: int
self.testarrayofbools = None # type: List[bool]
self.testarrayofbools = None # type: Optional[List[bool]]
self.testf = 3.14159 # type: float
self.testf2 = 3.0 # type: float
self.testf3 = 0.0 # type: float
self.testarrayofstring2 = None # type: List[str]
self.testarrayofsortedstruct = None # type: List[AbilityT]
self.flex = None # type: List[int]
self.test5 = None # type: List[TestT]
self.vectorOfLongs = None # type: List[int]
self.vectorOfDoubles = None # type: List[float]
self.testarrayofstring2 = None # type: Optional[List[Optional[str]]]
self.testarrayofsortedstruct = None # type: Optional[List[AbilityT]]
self.flex = None # type: Optional[List[int]]
self.test5 = None # type: Optional[List[TestT]]
self.vectorOfLongs = None # type: Optional[List[int]]
self.vectorOfDoubles = None # type: Optional[List[float]]
self.parentNamespaceTest = None # type: Optional[InParentNamespaceT]
self.vectorOfReferrables = None # type: List[ReferrableT]
self.vectorOfReferrables = None # type: Optional[List[ReferrableT]]
self.singleWeakReference = 0 # type: int
self.vectorOfWeakReferences = None # type: List[int]
self.vectorOfStrongReferrables = None # type: List[ReferrableT]
self.vectorOfWeakReferences = None # type: Optional[List[int]]
self.vectorOfStrongReferrables = None # type: Optional[List[ReferrableT]]
self.coOwningReference = 0 # type: int
self.vectorOfCoOwningReferences = None # type: List[int]
self.vectorOfCoOwningReferences = None # type: Optional[List[int]]
self.nonOwningReference = 0 # type: int
self.vectorOfNonOwningReferences = None # type: List[int]
self.vectorOfNonOwningReferences = None # type: Optional[List[int]]
self.anyUniqueType = 0 # type: int
self.anyUnique = None # type: Union[None, MonsterT, TestSimpleTableWithEnumT, MonsterT]
self.anyAmbiguousType = 0 # type: int
self.anyAmbiguous = None # type: Union[None, MonsterT, MonsterT, MonsterT]
self.vectorOfEnums = None # type: List[int]
self.vectorOfEnums = None # type: Optional[List[int]]
self.signedEnum = -1 # type: int
self.testrequirednestedflatbuffer = None # type: List[int]
self.scalarKeySortedTables = None # type: List[StatT]
self.testrequirednestedflatbuffer = None # type: Optional[List[int]]
self.scalarKeySortedTables = None # type: Optional[List[StatT]]
self.nativeInline = None # type: Optional[TestT]
self.longEnumNonEnumDefault = 0 # type: int
self.longEnumNormalDefault = 2 # type: int
Expand Down Expand Up @@ -2719,8 +2719,8 @@ def __init__(self):
self.u64 = 0 # type: int
self.f32 = 0.0 # type: float
self.f64 = 0.0 # type: float
self.v8 = None # type: List[int]
self.vf64 = None # type: List[float]
self.v8 = None # type: Optional[List[int]]
self.vf64 = None # type: Optional[List[float]]

@classmethod
def InitFromBuf(cls, buf, pos):
Expand Down
Loading