From c10b8f1bac53f3b639d9d6e820bfa0387afda81c Mon Sep 17 00:00:00 2001 From: Clair Mould <86794332+clmould@users.noreply.github.com> Date: Thu, 30 Apr 2026 16:38:01 +0100 Subject: [PATCH] Get var descriptions from new dataclass structure --- process/core/io/data_structure_dicts.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/process/core/io/data_structure_dicts.py b/process/core/io/data_structure_dicts.py index 051fd14cb..f147e5a8c 100644 --- a/process/core/io/data_structure_dicts.py +++ b/process/core/io/data_structure_dicts.py @@ -478,6 +478,26 @@ def get_dicts(): ): var_names_and_descriptions[lastvar.target.id] = "" + # Need to handle new dataclasses slightly differently as variable descriptions + # now are found under the ast.ClassDef node: + for node in module_tree.body: + if isinstance(node, ast.ClassDef): + for node1, node2 in pairwise(node.body): + if isinstance(node1, ast.AnnAssign) and isinstance(node2, ast.Expr): + # if docstring immediately follows the variable declaration, add docstring to descriptions dict + var_names_and_descriptions[node1.target.id] = node2.value.value + if isinstance(node1, ast.AnnAssign) and not isinstance( + node2, ast.Expr + ): + # if no docstring for variable, have a blank description + var_names_and_descriptions[node1.target.id] = "" + last_var = node.body[-1] + if ( + isinstance(last_var, ast.AnnAssign) + and last_var not in var_names_and_descriptions + ): + var_names_and_descriptions[last_var.target.id] = "" + dict_module_entry[module_name] = variable_names output_dict["DICT_MODULE"].update(dict_module_entry)