|
4 | 4 | from .dependency_handler import DependencyHandler |
5 | 5 | from .dependency_node import DependencyNode |
6 | 6 | import ctypes |
7 | | -from typing import Optional, Any |
| 7 | +from typing import Optional, Any, Dict |
8 | 8 |
|
9 | 9 | logger = logging.getLogger(__name__) |
10 | 10 |
|
@@ -34,7 +34,7 @@ def process_vmlinux_post_ast( |
34 | 34 |
|
35 | 35 | current_symbol_name = elem_type_class.__name__ |
36 | 36 | logger.info(f"Begin {current_symbol_name} Processing") |
37 | | - field_table = {} |
| 37 | + field_table: Dict[str, list] = {} |
38 | 38 | is_complex_type = False |
39 | 39 | containing_type: Optional[Any] = None |
40 | 40 | ctype_complex_type: Optional[Any] = None |
@@ -65,23 +65,25 @@ def process_vmlinux_post_ast( |
65 | 65 | # Inspect the class fields |
66 | 66 | if hasattr(class_obj, "_fields_"): |
67 | 67 | for field_elem in class_obj._fields_: |
68 | | - field_name = None |
69 | | - field_type = None |
70 | | - bitfield_size = None |
| 68 | + field_name: str = "" |
| 69 | + field_type: Optional[Any] = None |
| 70 | + bitfield_size: Optional[int] = None |
71 | 71 | if len(field_elem) == 2: |
72 | 72 | field_name, field_type = field_elem |
73 | 73 | elif len(field_elem) == 3: |
74 | 74 | field_name, field_type, bitfield_size = field_elem |
75 | 75 | field_table[field_name] = [field_type, bitfield_size] |
76 | 76 | elif hasattr(class_obj, "__annotations__"): |
77 | 77 | for field_elem in class_obj.__annotations__.items(): |
78 | | - field_name = None |
79 | | - field_type = None |
80 | | - bitfield_size = None |
81 | 78 | if len(field_elem) == 2: |
82 | 79 | field_name, field_type = field_elem |
| 80 | + bitfield_size = None |
83 | 81 | elif len(field_elem) == 3: |
84 | 82 | field_name, field_type, bitfield_size = field_elem |
| 83 | + else: |
| 84 | + raise ValueError( |
| 85 | + "Number of fields in items() of class object unexpected" |
| 86 | + ) |
85 | 87 | field_table[field_name] = [field_type, bitfield_size] |
86 | 88 | else: |
87 | 89 | raise TypeError("Could not get required class and definition") |
|
0 commit comments