Skip to content

Commit da45f7a

Browse files
committed
Review feedback
Signed-off-by: Christian Vetter <christian.vetter@here.com>
1 parent 122018b commit da45f7a

12 files changed

Lines changed: 29 additions & 21 deletions

File tree

flatdata-generator/flatdata/generator/engine.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def render_python_module(self, module_name: str | None = None, archive_name: str
8282
return module
8383

8484
name = ns.name + "_" + archive_name
85-
archive_type = getattr(module, name) if archive_name else None
85+
archive_type = getattr(module, name)
8686
return module, archive_type
8787

8888
@classmethod

flatdata-generator/flatdata/generator/generators/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
'''
55

66
from abc import ABCMeta, abstractmethod
7-
from typing import Any
7+
from typing import Any, NoReturn
88

99
from jinja2 import Environment, PackageLoader
1010
from jinja2 import nodes
@@ -83,6 +83,6 @@ def parse(self, parser: Any) -> nodes.CallBlock:
8383
)
8484

8585
#pylint: disable=no-self-use
86-
def _raise(self, msg: str, caller: Any) -> str:
86+
def _raise(self, msg: str, caller: Any) -> NoReturn:
8787
"""Helper callback."""
8888
raise TemplateRuntimeError(msg)

flatdata-generator/flatdata/generator/tree/builder.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ def _compute_structure_sizes(root: Root) -> None:
163163
if not isinstance(field, nodes.Field):
164164
continue
165165
field.offset = offset
166+
assert field.type is not None
166167
offset += int(field.type.width)
167168
struct.size_in_bits = offset
168169

@@ -200,6 +201,7 @@ def _check_ranges(root: Root) -> None:
200201

201202
def _check_const_refs(root: Root) -> None:
202203
for field in root.iterate(nodes.Field):
204+
assert field.type is not None
203205
for ref in field.children_like(ConstantReference):
204206
const_node = ref.node # resolves to Constant at runtime
205207
# Check that type matches

flatdata-generator/flatdata/generator/tree/nodes/archive.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ def create(properties: Any, definition: Any) -> 'Archive':
4848
return result
4949

5050
@property
51-
def resources(self) -> list[Any]:
52-
return self.children_like(resources.ResourceBase)
51+
def resources(self) -> list[resources.ResourceBase]:
52+
return self.children_like(resources.ResourceBase) # type: ignore[type-abstract] # isinstance() with ABC is valid
5353

5454
@property
5555
def doc(self) -> Any:

flatdata-generator/flatdata/generator/tree/nodes/node.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,14 +72,16 @@ def parent(self) -> Node | None:
7272
"""
7373
return self._parent
7474

75-
def first_parent_like(self, T: type) -> Node | None:
75+
def first_parent_like(self, T: type[_T]) -> _T | None:
7676
"""
7777
Returns first available parent of a given type or None if none found.
7878
"""
7979
result = self
8080
while result.parent is not None and not isinstance(result.parent, T):
8181
result = result.parent
82-
return result.parent
82+
if isinstance(result.parent, T):
83+
return result.parent
84+
return None
8385

8486
@property
8587
def path(self) -> str:

flatdata-generator/flatdata/generator/tree/nodes/resources/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def decorations(self) -> list[Any]:
3636
return self._decorations
3737

3838
@property
39-
def explicit_references(self) -> list[Any]:
39+
def explicit_references(self) -> list[ExplicitReference]:
4040
return self.children_like(ExplicitReference)
4141

4242
@property

flatdata-generator/flatdata/generator/tree/nodes/trivial/enumeration.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,5 @@ def type(self) -> BasicType | None:
6060
return self._type
6161

6262
@property
63-
def values(self) -> list[Any]:
63+
def values(self) -> list[EnumerationValue]:
6464
return self.children_like(EnumerationValue)

flatdata-generator/flatdata/generator/tree/nodes/trivial/field.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from flatdata.generator.tree.nodes.node import Node
22
from flatdata.generator.tree.nodes.references import EnumerationReference, ConstantValueReference, InvalidValueReference
33
from flatdata.generator.tree.helpers.basictype import BasicType
4+
from flatdata.generator.tree.helpers.enumtype import EnumType
45

56
from typing import Any
67

@@ -23,7 +24,7 @@ def __init__(self, name: str, properties: Any = None, type: str | None = None, o
2324
if type is not None:
2425
if not BasicType.is_basic_type(type):
2526
self._type_reference = EnumerationReference(type, width=self._width)
26-
self._type: BasicType | Any | None = None
27+
self._type: BasicType | EnumType | None = None
2728
self.insert(self._type_reference)
2829
else:
2930
self._type = BasicType(name=type, width=self._width)
@@ -47,11 +48,11 @@ def range(self) -> str | None:
4748
return None
4849

4950
@property
50-
def const_value_refs(self) -> list[Any]:
51+
def const_value_refs(self) -> list[ConstantValueReference]:
5152
return self.children_like(ConstantValueReference)
5253

5354
@property
54-
def invalid_value(self) -> Any:
55+
def invalid_value(self) -> InvalidValueReference | None:
5556
for x in self.children_like(InvalidValueReference):
5657
return x
5758
return None
@@ -61,11 +62,11 @@ def decorations(self) -> list[Any]:
6162
return self._decorations
6263

6364
@property
64-
def type(self) -> Any:
65+
def type(self) -> BasicType | EnumType | None:
6566
return self._type
6667

6768
@type.setter
68-
def type(self, value: Any) -> None:
69+
def type(self, value: BasicType | EnumType | None) -> None:
6970
self._type = value
7071

7172
@property

flatdata-generator/flatdata/generator/tree/nodes/trivial/structure.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,5 @@ def size_in_bytes(self) -> int:
4444
return (self._size_in_bits + 7) // 8
4545

4646
@property
47-
def fields(self) -> list[Any]:
47+
def fields(self) -> list[Field]:
4848
return self.children_like(Field)

flatdata-generator/flatdata/generator/tree/resolver.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,11 @@ def _validate_target_type(root: Node, ref: refs.Reference) -> None:
6464
raise errors.IncorrectReferenceType(ref.name, type(target), expected)
6565

6666

67-
def resolve_references(tree: Any) -> None:
67+
def resolve_references(tree: Node) -> None:
6868
for node in tree.root.iterate():
6969
assert type(node) not in _RESOLVED_BASE_TYPES, "Base reference types should not be used directly"
7070
if any([issubclass(type(node), t) for t in _RESOLVED_BASE_TYPES]):
71+
assert isinstance(node, refs.Reference)
7172
if node.is_qualified:
7273
resolved = _resolve_as_fully_qualified_reference(node)
7374
else:

0 commit comments

Comments
 (0)