Skip to content

Commit b5c9e1e

Browse files
committed
[Python] Use correct type for str with None
Otherwise mypy will correctly flag code like this def __init__(self): self.fooBar = None # type: Optional[str] error: Incompatible types in assignment (expression has type "None", variable has type "str")
1 parent 6fe8afb commit b5c9e1e

File tree

5 files changed

+11
-11
lines changed

5 files changed

+11
-11
lines changed

src/idl_gen_python.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1628,7 +1628,7 @@ class PythonGenerator : public BaseGenerator {
16281628
} else if (IsInteger(base_type)) {
16291629
return "int";
16301630
} else if (base_type == BASE_TYPE_STRING) {
1631-
return "str";
1631+
return "Optional[str]";
16321632
} else {
16331633
FLATBUFFERS_ASSERT(false && "base_type is not a scalar or string type.");
16341634
return "";
@@ -1769,7 +1769,7 @@ class PythonGenerator : public BaseGenerator {
17691769
}
17701770

17711771
const auto default_value = GetDefaultValue(field);
1772-
// Wrties the init statement.
1772+
// Writes the init statement.
17731773
const auto field_field = namer_.Field(field);
17741774
code += GenIndents(2) + "self." + field_field + " = " + default_value +
17751775
" # type: " + field_type;

tests/MyGame/Example/Monster.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1407,13 +1407,13 @@ def __init__(self):
14071407
self.pos = None # type: Optional[MyGame.Example.Vec3.Vec3T]
14081408
self.mana = 150 # type: int
14091409
self.hp = 100 # type: int
1410-
self.name = None # type: str
1410+
self.name = None # type: Optional[str]
14111411
self.inventory = None # type: List[int]
14121412
self.color = 8 # type: int
14131413
self.testType = 0 # type: int
14141414
self.test = None # type: Union[None, MyGame.Example.Monster.MonsterT, MyGame.Example.TestSimpleTableWithEnum.TestSimpleTableWithEnumT, MyGame.Example2.Monster.MonsterT]
14151415
self.test4 = None # type: List[MyGame.Example.Test.TestT]
1416-
self.testarrayofstring = None # type: List[str]
1416+
self.testarrayofstring = None # type: List[Optional[str]]
14171417
self.testarrayoftables = None # type: List[MyGame.Example.Monster.MonsterT]
14181418
self.enemy = None # type: Optional[MyGame.Example.Monster.MonsterT]
14191419
self.testnestedflatbuffer = None # type: List[int]
@@ -1431,7 +1431,7 @@ def __init__(self):
14311431
self.testf = 3.14159 # type: float
14321432
self.testf2 = 3.0 # type: float
14331433
self.testf3 = 0.0 # type: float
1434-
self.testarrayofstring2 = None # type: List[str]
1434+
self.testarrayofstring2 = None # type: List[Optional[str]]
14351435
self.testarrayofsortedstruct = None # type: List[MyGame.Example.Ability.AbilityT]
14361436
self.flex = None # type: List[int]
14371437
self.test5 = None # type: List[MyGame.Example.Test.TestT]

tests/MyGame/Example/NestedUnion/NestedUnionTest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ class NestedUnionTestT(object):
105105

106106
# NestedUnionTestT
107107
def __init__(self):
108-
self.name = None # type: str
108+
self.name = None # type: Optional[str]
109109
self.dataType = 0 # type: int
110110
self.data = None # type: Union[None, MyGame.Example.NestedUnion.Vec3.Vec3T, MyGame.Example.NestedUnion.TestSimpleTableWithEnum.TestSimpleTableWithEnumT]
111111
self.id = 0 # type: int

tests/MyGame/Example/Stat.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ class StatT(object):
8484

8585
# StatT
8686
def __init__(self):
87-
self.id = None # type: str
87+
self.id = None # type: Optional[str]
8888
self.val = 0 # type: int
8989
self.count = 0 # type: int
9090

tests/monster_test_generated.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -728,7 +728,7 @@ class StatT(object):
728728

729729
# StatT
730730
def __init__(self):
731-
self.id = None # type: str
731+
self.id = None # type: Optional[str]
732732
self.val = 0 # type: int
733733
self.count = 0 # type: int
734734

@@ -1973,13 +1973,13 @@ def __init__(self):
19731973
self.pos = None # type: Optional[Vec3T]
19741974
self.mana = 150 # type: int
19751975
self.hp = 100 # type: int
1976-
self.name = None # type: str
1976+
self.name = None # type: Optional[str]
19771977
self.inventory = None # type: List[int]
19781978
self.color = 8 # type: int
19791979
self.testType = 0 # type: int
19801980
self.test = None # type: Union[None, MonsterT, TestSimpleTableWithEnumT, MonsterT]
19811981
self.test4 = None # type: List[TestT]
1982-
self.testarrayofstring = None # type: List[str]
1982+
self.testarrayofstring = None # type: List[Optional[str]]
19831983
self.testarrayoftables = None # type: List[MonsterT]
19841984
self.enemy = None # type: Optional[MonsterT]
19851985
self.testnestedflatbuffer = None # type: List[int]
@@ -1997,7 +1997,7 @@ def __init__(self):
19971997
self.testf = 3.14159 # type: float
19981998
self.testf2 = 3.0 # type: float
19991999
self.testf3 = 0.0 # type: float
2000-
self.testarrayofstring2 = None # type: List[str]
2000+
self.testarrayofstring2 = None # type: List[Optional[str]]
20012001
self.testarrayofsortedstruct = None # type: List[AbilityT]
20022002
self.flex = None # type: List[int]
20032003
self.test5 = None # type: List[TestT]

0 commit comments

Comments
 (0)