diff --git a/src/techui_builder/builder.py b/src/techui_builder/builder.py index fdfbdac..5119c71 100644 --- a/src/techui_builder/builder.py +++ b/src/techui_builder/builder.py @@ -27,6 +27,7 @@ class JsonMap: duplicate: bool = False children: list["JsonMap"] = field(default_factory=list) macros: dict[str, str] = field(default_factory=dict) + symbol: str = "" error: str = "" @@ -304,6 +305,7 @@ def _generate_json_map( for widget_elem in widgets: # Obtain macros associated with file_elem macro_dict: dict[str, str] = {} + symbol_path: str = "" widget_type = widget_elem.get("type", default=None) match widget_type: @@ -317,6 +319,12 @@ def _generate_json_map( name_elem = widget_elem.name.text macro_dict = self._get_macros(open_display) + if widget_type == "symbol": + try: + symbol_path = str(widget_elem.symbols.symbol) + except AttributeError: + pass + case "embedded": file_elem = self._extract_action_button_file_from_embedded( widget_elem.file, dest_path @@ -363,6 +371,7 @@ def _generate_json_map( ) child_node.macros = macro_dict + child_node.symbol = symbol_path # TODO: make this work for only list[JsonMap] assert isinstance(current_node.children, list) # TODO: fix typing